diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index c65daa1f..1bb57c3e 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -10,7 +10,7 @@ jobs: doc_verify: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Node.js uses: actions/setup-node@v4 @@ -38,7 +38,7 @@ jobs: - ubuntu-24.04 runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Go uses: ./.github/actions/setup-go @@ -74,7 +74,7 @@ jobs: - ubuntu-24.04 runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Go uses: actions/setup-go@v5 @@ -125,7 +125,7 @@ jobs: - ubuntu-24.04 runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Go uses: actions/setup-go@v5 diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml index ad682b5b..e946028f 100644 --- a/.github/workflows/fmt.yml +++ b/.github/workflows/fmt.yml @@ -10,7 +10,7 @@ jobs: fmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Go uses: ./.github/actions/setup-go diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 2cb18175..17614d34 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -20,7 +20,7 @@ jobs: llvm: [19] runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install dependencies uses: ./.github/actions/setup-deps with: diff --git a/.github/workflows/llgo.yml b/.github/workflows/llgo.yml index f3f4ed7b..bd6d4f70 100644 --- a/.github/workflows/llgo.yml +++ b/.github/workflows/llgo.yml @@ -37,16 +37,37 @@ jobs: go: ["1.21.13", "1.22.12", "1.23.6", "1.24.2"] runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install dependencies uses: ./.github/actions/setup-deps with: llvm-version: ${{matrix.llvm}} - name: Download model artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: llama2-model path: ./_demo/llama2-c/ + - name: Download platform-specific demo libs + run: | + if ${{ startsWith(matrix.os, 'macos') }}; then + DEMO_PKG="cargs_darwin_arm64.zip" + else + DEMO_PKG="cargs_linux_amd64.zip" + fi + + mkdir -p ./_demo/cargs/libs + cd ./_demo/cargs/libs + wget https://github.com/goplus/llpkg/releases/download/cargs/v1.0.0/${DEMO_PKG} + unzip ${DEMO_PKG} + + # Process pc template files - replace {{.Prefix}} with actual path + ACTUAL_PREFIX="$(pwd)" + for tmpl in lib/pkgconfig/*.pc.tmpl; do + pc_file="${tmpl%.tmpl}" + sed "s|{{.Prefix}}|${ACTUAL_PREFIX}|g" "$tmpl" > "$pc_file" + done + + echo "PKG_CONFIG_PATH=${ACTUAL_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> $GITHUB_ENV - name: Install further optional dependencies for demos run: | py_deps=( @@ -70,6 +91,18 @@ jobs: with: go-version: ${{matrix.go}} + - name: Test demo without RPATH (expect failure) + run: | + echo "Testing demo without RPATH (should fail)..." + export LLGO_FULL_RPATH=false + pkg-config --libs cargs + if (cd ./_demo/cargs && llgo run .); then + echo "ERROR: cargs demo should have failed without RPATH!" + exit 1 + else + echo "✓ cargs demo correctly failed without RPATH" + fi + - name: Test demos run: | # TODO(lijie): force python3-embed to be linked with python-3.12-embed @@ -80,7 +113,8 @@ jobs: libdir=$(pkg-config --variable=libdir python-3.12-embed) echo "libdir: $libdir" ln -s $libdir/pkgconfig/python-3.12-embed.pc $pcdir/python3-embed.pc - export PKG_CONFIG_PATH=$pcdir + export PKG_CONFIG_PATH=$pcdir:${PKG_CONFIG_PATH} + export LLGO_FULL_RPATH=true bash .github/workflows/test_demo.sh - name: _xtool build tests @@ -108,7 +142,7 @@ jobs: go: ["1.24.2"] runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install dependencies uses: ./.github/actions/setup-deps with: @@ -149,7 +183,7 @@ jobs: go: ["1.21.13", "1.22.12", "1.23.6", "1.24.2"] runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install dependencies uses: ./.github/actions/setup-deps with: @@ -206,7 +240,7 @@ jobs: llvm: [19] runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install dependencies uses: ./.github/actions/setup-deps with: diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 97074874..289d8767 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -10,7 +10,7 @@ jobs: runs-on: macos-latest steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Populate Darwin sysroot run: bash .github/workflows/populate_darwin_sysroot.sh - name: Create Darwin sysroot tarball @@ -26,7 +26,7 @@ jobs: needs: populate-darwin-sysroot steps: - name: Check out code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 - name: Set up Go @@ -38,7 +38,7 @@ jobs: with: image: tonistiigi/binfmt:qemu-v7.0.0-28 - name: Download Darwin sysroot tarball - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: darwin-sysroot-tarball path: .sysroot diff --git a/.github/workflows/targets.yml b/.github/workflows/targets.yml index 5305398f..09477cfc 100644 --- a/.github/workflows/targets.yml +++ b/.github/workflows/targets.yml @@ -18,7 +18,7 @@ jobs: llvm: [19] runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install dependencies uses: ./.github/actions/setup-deps with: diff --git a/_demo/asmcall/asmcall.go b/_demo/asmcall/asmcall.go new file mode 100644 index 00000000..324677a6 --- /dev/null +++ b/_demo/asmcall/asmcall.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "time" +) + +//llgo:link asm llgo.asm +func asm(instruction string) {} + +func main() { + start := time.Now() + for i := 0; i < 100000; i++ { + asm("nop") + } + duration := time.Since(start) + fmt.Println("Duration:", duration) +} diff --git a/_demo/cabi/main.go b/_demo/cabi/main.go new file mode 100644 index 00000000..b64d06cc --- /dev/null +++ b/_demo/cabi/main.go @@ -0,0 +1,395 @@ +package main + +import ( + _ "unsafe" +) + +const ( + LLGoFiles = "wrap/wrap.c" +) + +type point struct { + x int32 + y int32 +} + +//go:linkname pt C.pt +func pt(pt point) point + +type point1 struct { + x int32 + y int32 + z int32 +} + +//go:linkname pt1 C.pt1 +func pt1(pt point1) point1 + +type point2 struct { + x int8 + y int32 + z int32 +} + +//go:linkname pt2 C.pt2 +func pt2(pt point2) point2 + +type point3 struct { + x int8 + y int8 + z int8 +} + +//go:linkname pt3 C.pt3 +func pt3(pt point3) point3 + +type point4 struct { + x int8 + y int8 + z int8 + m int32 +} + +//go:linkname pt4 C.pt4 +func pt4(pt point4) point4 + +type point5 struct { + x int8 + y int8 + z int8 + m int8 + n int8 +} + +//go:linkname pt5 C.pt5 +func pt5(pt point5) point5 + +type point6 struct { + x int8 + y int8 + z int8 + m int8 + n int8 + k int32 +} + +//go:linkname pt6 C.pt6 +func pt6(pt point6) point6 + +type point7 struct { + x int8 + y int8 + z int8 + m int8 + n int8 + k int32 + o int8 +} + +//go:linkname pt7 C.pt7 +func pt7(pt point7) point7 + +type data1 struct { + x int8 + y int64 +} + +//go:linkname fn1 C.fn1 +func fn1(data1) data1 + +type data2 struct { + x int32 + y int64 +} + +//go:linkname fn2 C.fn2 +func fn2(data2) data2 + +type data3 struct { + x int64 + y int8 +} + +//go:linkname fn3 C.fn3 +func fn3(data3) data3 + +type fdata1 struct { + x float32 +} + +//go:linkname ff1 C.ff1 +func ff1(fdata1) fdata1 + +type fdata2 struct { + x float32 + y float32 +} + +//go:linkname ff2 C.ff2 +func ff2(fdata2) fdata2 + +type fdata2i struct { + x float32 + y int32 +} + +//go:linkname ff2i C.ff2i +func ff2i(fdata2i) fdata2i + +type fdata3 struct { + x float32 + y float32 + z float32 +} + +//go:linkname ff3 C.ff3 +func ff3(fdata3) fdata3 + +type fdata4 struct { + x float32 + y float32 + z float32 + m float32 +} + +//go:linkname ff4 C.ff4 +func ff4(fdata4) fdata4 + +type fdata5 struct { + x float32 + y float32 + z float32 + m float32 + n float32 +} + +//go:linkname ff5 C.ff5 +func ff5(fdata5) fdata5 + +type fdata2id struct { + x int8 + y int8 + z float64 +} + +//go:linkname ff2id C.ff2id +func ff2id(fdata2id) fdata2id + +type fdata7if struct { + x [7]int8 + y float32 +} + +//go:linkname ff7if C.ff7if +func ff7if(fdata7if) fdata7if + +type fdata4if struct { + x float32 + y int8 + z float32 + m float32 +} + +//go:linkname ff4if C.ff4if +func ff4if(fdata4if) fdata4if + +type array struct { + x [8]int32 +} + +//go:linkname demo64 C.demo64 +func demo64(n int64) int64 + +//go:linkname demo32 C.demo32 +func demo32(n int32) int32 + +type struct32 struct { + v int32 +} + +//go:linkname demo32s C.demo32s +func demo32s(v struct32) struct32 + +type point64 struct { + x int64 + y int64 +} + +//go:linkname pt64 C.pt64 +func pt64(pt point64) point64 + +//go:linkname demo C.demo +func demo(a array) array + +//go:linkname demo2 C.demo2 +func demo2(x int32) array + +type ddata1 struct { + x float64 +} + +//go:linkname dd1 C.dd1 +func dd1(d ddata1) ddata1 + +type ddata2 struct { + x float64 + y float64 +} + +//go:linkname dd2 C.dd2 +func dd2(d ddata2) ddata2 + +type ddata3 struct { + x float64 + y float64 + z float64 +} + +//go:linkname dd3 C.dd3 +func dd3(d ddata3) ddata3 + +//llgo:type C +type Callback func(array, point, point1) array + +//go:linkname callback C.callback +func callback(fn Callback, ar array) + +//llgo:type C +type Callback1 func(array, point, point1) point + +//go:linkname callback1 C.callback1 +func callback1(fn Callback1, ar array) + +//go:linkname mycallback C.mycallback +func mycallback(ar array, pt point, pt1 point1) point + +func myfn1(ar array, pt point, pt1 point1) point { + println("=>", ar.x[0], ar.x[1], ar.x[7], pt.x, pt.y, pt1.x, pt1.y, pt1.z) + return point{100, 200} +} + +//export export_demo +func export_demo(ar array) array { + println("=> export", ar.x[0], ar.x[1], ar.x[7]) + return ar +} + +func main() { + cabi_demo() + callback_demo() +} + +func callback_demo() { + export_demo(array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + + callback(func(ar array, pt point, pt1 point1) array { + println("=> callback", ar.x[0], ar.x[1], ar.x[7], pt.x, pt.y, pt1.x, pt1.y, pt1.z) + return array{x: [8]int32{8, 7, 6, 5, 4, 3, 2, 1}} + }, array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + + callback1(func(ar array, pt point, pt1 point1) point { + println("=> callback1", ar.x[0], ar.x[1], ar.x[7], pt.x, pt.y, pt1.x, pt1.y, pt1.z) + return point{100, 200} + }, array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + ret := mycallback(array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}, point{1, 2}, point1{1, 2, 3}) + println("=> mycallback", ret.x, ret.y) + callback1(myfn1, array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + callback1(myfn1, array{x: [8]int32{8, 7, 6, 5, 4, 3, 2, 1}}) + callback1(mycallback, array{x: [8]int32{10, 20, 30, 40, 50, 60, 70, 80}}) +} + +func cabi_demo() { + i32 := demo32(1024) + println("=> demo32", i32) + + s32 := demo32s(struct32{100}) + println("=> demo32s", s32.v) + + i64 := demo64(1024) + println("=> demo64", i64) + + p64 := pt64(point64{1024, -1024}) + println("=> pt64", p64.x, p64.y) + + r := demo(array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + println("=> demo", r.x[0], r.x[1]) + + r2 := demo2(100) + println("=> demo2", r2.x[0], r2.x[1], r2.x[7]) + + p0 := pt(point{1, 2}) + println("=> pt0", p0.x, p0.y) + + p1 := pt1(point1{1, 2, 3}) + println("=> pt1", p1.x, p1.y, p1.z) + + p2 := pt2(point2{1, 2, 3}) + println("=> pt2", p2.x, p2.y, p2.z) + + p3 := pt3(point3{1, 2, 3}) + println("=> pt3", p3.x, p3.y, p3.z) + + p4 := pt4(point4{1, 2, 3, 4}) + println("=> pt4", p4.x, p4.y, p4.z, p4.m) + + p5 := pt5(point5{1, 2, 3, 4, 5}) + println("=> pt5", p5.x, p5.y, p5.z, p5.m, p5.n) + + p6 := pt6(point6{1, 2, 3, 4, 5, 6}) + println("=> pt6", p6.x, p6.y, p6.z, p6.m, p6.n, p6.k) + + p7 := pt7(point7{1, 2, 3, 4, 5, 6, 7}) + println("=> pt7", p7.x, p7.y, p7.z, p7.m, p7.n, p7.k, p7.o) + + // skip wrap + fd1 := fn1(data1{1, 2}) + println("=> fd1", fd1.x, fd1.y) + + fd2 := fn2(data2{1, 2}) + println("=> fd2", fd2.x, fd2.y) + + fd3 := fn3(data3{1, 2}) + println("=> fd3", fd3.x, fd3.y) + + // float + f1 := ff1(fdata1{1.1}) + println("=> f1", f1.x) + + // float + f2 := ff2(fdata2{1.1, 2.1}) + println("=> f2", f2.x, f2.y) + + // float + f2i := ff2i(fdata2i{1.1, 2}) + println("=> f2i", f2i.x, f2i.y) + + // float + f3 := ff3(fdata3{1.1, 2.1, 3.1}) + println("=> f3", f3.x, f3.y, f3.z) + + // float + f4 := ff4(fdata4{1.1, 2.1, 3.1, 4.1}) + println("=> f4", f4.x, f4.y, f4.z, f4.m) + + // float + f5 := ff5(fdata5{1.1, 2.1, 3.1, 4.1, 5.1}) + println("=> f5", f5.x, f5.y, f5.z, f5.m, f5.n) + + f2id := ff2id(fdata2id{1, 2, 3.1}) + println("=> f2id", f2id.x, f2id.y, f2id.z) + + f7if := ff7if(fdata7if{[7]int8{1, 2, 3, 4, 5, 6, 7}, 3.1}) + println("=> f7if", f7if.x[0], f7if.x[1], f7if.y) + + f4if := ff4if(fdata4if{1.1, 2, 3.1, 4.1}) + println("=> f4if", f4if.x, f4if.y, f4if.z, f4if.m) + + d1 := dd1(ddata1{1.1}) + println("=> dd1", d1.x) + + d2 := dd2(ddata2{1.1, 2.1}) + println("=> dd2", d2.x, d2.y) + + d3 := dd3(ddata3{1.1, 2.1, 3.1}) + println("=> dd3", d3.x, d3.y, d3.z) +} diff --git a/_demo/cabi/wrap/wrap.c b/_demo/cabi/wrap/wrap.c new file mode 100644 index 00000000..e5519118 --- /dev/null +++ b/_demo/cabi/wrap/wrap.c @@ -0,0 +1,325 @@ +extern int printf(const char *format, ...); + +int demo32(int v) { + return v+100; +} + +long long demo64(long long v) { + return v+100; +} + +struct struct32 { + int v; +}; + +struct point64 { + long long x; + long long y; +}; + +struct point64 pt64(struct point64 pt) { + printf("point64: %lld %lld\n",pt.x,pt.y); + return pt; +} + +struct struct32 demo32s(struct struct32 v) { + printf("struct32: %d\n",v.v); + struct struct32 v2 = {v.v+100}; + return v2; +} + +struct point { + int x; + int y; +}; + +struct point pt(struct point pt) { + printf("point: %d %d\n",pt.x,pt.y); + return pt; +} + +struct point1 { + int x; + int y; + int z; +}; + +struct point1 pt1(struct point1 pt) { + printf("point1: %d %d %d\n",pt.x,pt.y,pt.z); + return pt; +} + +struct point2 { + char x; + int y; + int z; +}; + +struct point2 pt2(struct point2 pt) { + printf("point2: %d %d %d\n",pt.x,pt.y,pt.z); + return pt; +} + +struct point3 { + char x; + char y; + char z; +}; + +struct point3 pt3(struct point3 pt) { + printf("point3: %d %d %d\n",pt.x,pt.y,pt.z); + return pt; +} + +struct point4 { + char x; + char y; + char z; + int m; +}; + +struct point4 pt4(struct point4 pt) { + printf("point4: %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m); + return pt; +} + +struct point5 { + char x; + char y; + char z; + char m; + char n; +}; + +struct point5 pt5(struct point5 pt) { + printf("point5: %d %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m,pt.n); + return pt; +} + +struct point6 { + char x; + char y; + char z; + char m; + char n; + int k; +}; + +struct point6 pt6(struct point6 pt) { + printf("point6: %d %d %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m,pt.n,pt.k); + return pt; +} + +struct point7 { + char x; + char y; + char z; + char m; + char n; + int k; + char o; +}; + +struct point7 pt7(struct point7 pt) { + printf("point7: %d %d %d %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m,pt.n,pt.k,pt.o); + return pt; +} + +struct data1 { + char x; + long long y; +}; + +struct data1 fn1(struct data1 pt) { + printf("data1: %d %lld\n",pt.x,pt.y); + return pt; +} + +struct data2 { + int x; + long long y; +}; + +struct data2 fn2(struct data2 pt) { + printf("data2: %d %lld\n",pt.x,pt.y); + return pt; +} + +struct data3 { + long long x; + char y; +}; + +struct data3 fn3(struct data3 pt) { + printf("data3: %lld %d\n",pt.x,pt.y); + return pt; +} + +struct fdata1 { + float x; +}; + +struct fdata1 ff1(struct fdata1 pt) { + printf("ff1: %f\n",pt.x); + return pt; +} + +struct ddata1 { + double x; +}; + +struct ddata1 dd1(struct ddata1 pt) { + printf("dd1: %f\n",pt.x); + return pt; +} + +struct ddata2 { + double x; + double y; +}; + +struct ddata2 dd2(struct ddata2 pt) { + printf("dd2: %f %f\n",pt.x,pt.y); + return pt; +} + +struct ddata3 { + double x; + double y; + double z; +}; + +struct ddata3 dd3(struct ddata3 pt) { + printf("dd3: %f %f %f\n",pt.x,pt.y,pt.z); + return pt; +} + +struct fdata2i { + float x; + int y; +}; + +struct fdata2i ff2i(struct fdata2i pt) { + printf("ff2i: %f %d\n",pt.x,pt.y); + return pt; +} + +struct fdata2 { + float x; + float y; +}; + +struct fdata2 ff2(struct fdata2 pt) { + printf("ff2: %f %f\n",pt.x,pt.y); + return pt; +} + +struct fdata3 { + float x; + float y; + float z; +}; + +struct fdata3 ff3(struct fdata3 pt) { + printf("ff3: %f %f %f\n",pt.x,pt.y,pt.z); + return pt; +} + +struct fdata4 { + float x; + float y; + float z; + float m; +}; + +struct fdata4 ff4(struct fdata4 pt) { + printf("ff4: %f %f %f %f\n",pt.x,pt.y,pt.z,pt.m); + return pt; +} + +struct fdata5 { + float x; + float y; + float z; + float m; + float n; +}; + +struct fdata5 ff5(struct fdata5 pt) { + printf("ff5: %f %f %f %f %f\n",pt.x,pt.y,pt.z,pt.m,pt.n); + return pt; +} + +struct fdata2id { + char x; + char y; + double z; +}; + +struct fdata2id ff2id(struct fdata2id pt) { + printf("ff6: %d %d %f\n",pt.x,pt.y,pt.z); + return pt; +} + +struct fdata7if { + char x[7]; + float z; +}; + +struct fdata7if ff7if(struct fdata7if pt) { + printf("ff7if: %d %d %f\n",pt.x[0],pt.x[1],pt.z); + return pt; +} + +struct fdata4if { + float x; + char y; + float z; + float m; +}; + +struct fdata4if ff4if(struct fdata4if pt) { + printf("ff4if: %f %d %f %f\n",pt.x,pt.y,pt.z,pt.m); + return pt; +} + +struct array { + int x[8]; +}; + +struct array demo(struct array a) { + printf("demo: %d %d %d\n",a.x[0],a.x[1],a.x[2]); + return a; +} + +struct array demo2(int a1){ + struct array x; + for (int i = 0; i < 8; i++) { + x.x[i] = i+a1; + } + return x; +} + +void callback(struct array (*fn)(struct array ar, struct point pt, struct point1 pt1), struct array ar) { + demo(ar); + struct point pt = {1,2}; + struct point1 pt1 = {1,2,3}; + struct array ret = fn(ar,pt,pt1); + demo(ret); +} + +void callback1(struct point (*fn)(struct array ar, struct point pt, struct point1 pt1), struct array ar) { + printf("callback1 array: %d %d %d\n",ar.x[0],ar.x[1],ar.x[7]); + struct point pt = {1,2}; + struct point1 pt1 = {1,2,3}; + struct point ret = fn(ar,pt,pt1); + printf("callback1 ret: %d,%d\n",ret.x,ret.y); +} + +struct point mycallback(struct array ar, struct point pt, struct point1 pt1) { + printf("mycallback array: %d %d %d\n",ar.x[0],ar.x[1],ar.x[7]); + printf("mycallback pt: %d %d\n",pt.x,pt.y); + printf("mycallback pt1: %d %d %d\n",pt1.x,pt1.y,pt1.z); + struct point ret = {pt.x+pt1.x, pt.y+pt1.y}; + return ret; +} diff --git a/_demo/cargs/demo.go b/_demo/cargs/demo.go new file mode 100644 index 00000000..4ac382da --- /dev/null +++ b/_demo/cargs/demo.go @@ -0,0 +1,144 @@ +package main + +import ( + "fmt" + "os" + _ "unsafe" + + "github.com/goplus/lib/c" +) + +const LLGoPackage string = "link: $(pkg-config --libs cargs);" + +type Option struct { + Identifier c.Char + AccessLetters *c.Char + AccessName *c.Char + ValueName *c.Char + Description *c.Char +} + +type OptionContext struct { + Options *Option + OptionCount c.SizeT + Argc c.Int + Argv **c.Char + Index c.Int + InnerIndex c.Int + ErrorIndex c.Int + ErrorLetter c.Char + ForcedEnd bool + Identifier c.Char + Value *c.Char +} + +// llgo:type C +type Printer func(__llgo_arg_0 c.Pointer, __llgo_arg_1 *c.Char, __llgo_va_list ...interface{}) c.Int + +// llgo:link (*OptionContext).OptionInit C.cag_option_init +func (recv_ *OptionContext) OptionInit(options *Option, option_count c.SizeT, argc c.Int, argv **c.Char) { +} + +// llgo:link (*OptionContext).OptionFetch C.cag_option_fetch +func (recv_ *OptionContext) OptionFetch() bool { + return false +} + +// llgo:link (*OptionContext).OptionGetIdentifier C.cag_option_get_identifier +func (recv_ *OptionContext) OptionGetIdentifier() c.Char { + return 0 +} + +// llgo:link (*OptionContext).OptionGetValue C.cag_option_get_value +func (recv_ *OptionContext) OptionGetValue() *c.Char { + return nil +} + +// llgo:link (*OptionContext).OptionGetIndex C.cag_option_get_index +func (recv_ *OptionContext) OptionGetIndex() c.Int { + return 0 +} + +// llgo:link (*OptionContext).OptionGetErrorIndex C.cag_option_get_error_index +func (recv_ *OptionContext) OptionGetErrorIndex() c.Int { + return 0 +} + +// llgo:link (*OptionContext).OptionGetErrorLetter C.cag_option_get_error_letter +func (recv_ *OptionContext) OptionGetErrorLetter() c.Char { + return 0 +} + +// llgo:link (*OptionContext).OptionPrintError C.cag_option_print_error +func (recv_ *OptionContext) OptionPrintError(destination *c.FILE) { +} + +// llgo:link (*OptionContext).OptionPrinterError C.cag_option_printer_error +func (recv_ *OptionContext) OptionPrinterError(printer Printer, printer_ctx c.Pointer) { +} + +// llgo:link (*Option).OptionPrint C.cag_option_print +func (recv_ *Option) OptionPrint(option_count c.SizeT, destination *c.FILE) { +} + +// llgo:link (*Option).OptionPrinter C.cag_option_printer +func (recv_ *Option) OptionPrinter(option_count c.SizeT, printer Printer, printer_ctx c.Pointer) { +} + +// llgo:link (*OptionContext).OptionPrepare C.cag_option_prepare +func (recv_ *OptionContext) OptionPrepare(options *Option, option_count c.SizeT, argc c.Int, argv **c.Char) { +} + +// llgo:link (*OptionContext).OptionGet C.cag_option_get +func (recv_ *OptionContext) OptionGet() c.Char { + return 0 +} + +func main() { + options := []Option{ + { + Identifier: 'h', + AccessLetters: c.Str("h"), + AccessName: c.Str("help"), + ValueName: nil, + Description: c.Str("Show help information"), + }, + { + Identifier: 'v', + AccessLetters: c.Str("v"), + AccessName: c.Str("version"), + ValueName: nil, + Description: c.Str("Show version information"), + }, + } + + args := os.Args + + // Convert Go string array to C-style argv + argv := make([]*int8, len(args)) + for i, arg := range args { + argv[i] = c.AllocaCStr(arg) + } + + // Initialize option context + var context OptionContext + context.OptionInit(&options[0], uintptr(len(options)), c.Int(len(args)), &argv[0]) + + // Process all options + identifierFound := false + for context.OptionFetch() { + identifierFound = true + identifier := context.OptionGetIdentifier() + switch identifier { + case 'h': + fmt.Println("Help: This is a simple command-line parser demo") + case 'v': + fmt.Println("Version: 1.0.0") + } + } + + // Default output if no identifier is found + if !identifierFound { + fmt.Println("Demo Command-line Tool\nIdentifier:\n\t-h: Help\n\t-v: Version") + } +} diff --git a/_demo/ifaceconv/main.go b/_demo/ifaceconv/main.go new file mode 100644 index 00000000..eca41c44 --- /dev/null +++ b/_demo/ifaceconv/main.go @@ -0,0 +1,85 @@ +package main + +// Tests of interface conversions and type assertions. + +type I0 interface { +} +type I1 interface { + f() +} +type I2 interface { + f() + g() +} + +type C0 struct{} +type C1 struct{} + +func (C1) f() {} + +type C2 struct{} + +func (C2) f() {} +func (C2) g() {} + +func main() { + var i0 I0 + var i1 I1 + var i2 I2 + + // Nil always causes a type assertion to fail, even to the + // same type. + if _, ok := i0.(I0); ok { + panic("nil i0.(I0) succeeded") + } + if _, ok := i1.(I1); ok { + panic("nil i1.(I1) succeeded") + } + if _, ok := i2.(I2); ok { + panic("nil i2.(I2) succeeded") + } + + // Conversions can't fail, even with nil. + _ = I0(i0) + + _ = I0(i1) + _ = I1(i1) + + _ = I0(i2) + _ = I1(i2) + _ = I2(i2) + + // Non-nil type assertions pass or fail based on the concrete type. + i1 = C1{} + if _, ok := i1.(I0); !ok { + panic("C1 i1.(I0) failed") + } + if _, ok := i1.(I1); !ok { + panic("C1 i1.(I1) failed") + } + if _, ok := i1.(I2); ok { + panic("C1 i1.(I2) succeeded") + } + + i1 = C2{} + if _, ok := i1.(I0); !ok { + panic("C2 i1.(I0) failed") + } + if _, ok := i1.(I1); !ok { + panic("C2 i1.(I1) failed") + } + if _, ok := i1.(I2); !ok { + panic("C2 i1.(I2) failed") + } + + // Conversions can't fail. + i1 = C1{} + if I0(i1) == nil { + panic("C1 I0(i1) was nil") + } + if I1(i1) == nil { + panic("C1 I1(i1) was nil") + } + + println("pass") +} diff --git a/_demo/readdir/main.go b/_demo/readdir/main.go new file mode 100644 index 00000000..ed394e64 --- /dev/null +++ b/_demo/readdir/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "fmt" + "os" +) + +func main() { + entries, err := os.ReadDir("../") + if err != nil { + panic(err) + } + if len(entries) == 0 { + panic("No files found") + } + for _, e := range entries { + fmt.Printf("%s isDir[%t]\n", e.Name(), e.IsDir()) + } +} diff --git a/chore/llgen/llgen.go b/chore/llgen/llgen.go index 50e9a89e..33fb48e7 100644 --- a/chore/llgen/llgen.go +++ b/chore/llgen/llgen.go @@ -21,14 +21,19 @@ import ( "fmt" "os" + "github.com/goplus/llgo/internal/build" "github.com/goplus/llgo/internal/llgen" ) +var ( + abi = flag.Int("abi", 0, "ABI mode (default 0). 0 = none, 1 = cfunc, 2 = allfunc.") +) + func main() { flag.Parse() if len(flag.Args()) != 1 { fmt.Fprintln(os.Stderr, "Usage: llgen [flags] ") return } - llgen.SmartDoFile(flag.Args()[0]) + llgen.SmartDoFileEx(flag.Args()[0], build.AbiMode(*abi)) } diff --git a/cl/_testgo/ifaceconv/out.ll b/cl/_testgo/ifaceconv/out.ll index adce156d..2f6e0bee 100644 --- a/cl/_testgo/ifaceconv/out.ll +++ b/cl/_testgo/ifaceconv/out.ll @@ -98,7 +98,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 define void @"github.com/goplus/llgo/cl/_testgo/ifaceconv.main"() { _llgo_0: %0 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I0", align 8 - br i1 true, label %_llgo_23, label %_llgo_24 + br i1 false, label %_llgo_23, label %_llgo_24 _llgo_1: ; preds = %_llgo_25 %1 = load ptr, ptr @_llgo_string, align 8 @@ -112,7 +112,7 @@ _llgo_1: ; preds = %_llgo_25 _llgo_2: ; preds = %_llgo_25 %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) %6 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8 - br i1 true, label %_llgo_26, label %_llgo_27 + br i1 false, label %_llgo_26, label %_llgo_27 _llgo_3: ; preds = %_llgo_28 %7 = load ptr, ptr @_llgo_string, align 8 @@ -126,7 +126,7 @@ _llgo_3: ; preds = %_llgo_28 _llgo_4: ; preds = %_llgo_28 %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) %12 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8 - br i1 true, label %_llgo_29, label %_llgo_30 + br i1 false, label %_llgo_29, label %_llgo_30 _llgo_5: ; preds = %_llgo_31 %13 = load ptr, ptr @_llgo_string, align 8 @@ -173,125 +173,127 @@ _llgo_7: ; preds = %_llgo_34 _llgo_8: ; preds = %_llgo_34 %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %33) %42 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8 + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1 br i1 true, label %_llgo_35, label %_llgo_36 _llgo_9: ; preds = %_llgo_37 - %43 = load ptr, ptr @_llgo_string, align 8 - %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 17 }, ptr %44, align 8 - %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %43, 0 - %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %45, ptr %44, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %46) + %44 = load ptr, ptr @_llgo_string, align 8 + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 17 }, ptr %45, align 8 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %44, 0 + %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %46, ptr %45, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %47) unreachable _llgo_10: ; preds = %_llgo_37 - %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %33) - %48 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8 - %49 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %48, ptr %47) - br i1 %49, label %_llgo_38, label %_llgo_39 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %33) + %49 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8 + %50 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %49, ptr %48) + br i1 %50, label %_llgo_38, label %_llgo_39 _llgo_11: ; preds = %_llgo_40 - %50 = load ptr, ptr @_llgo_string, align 8 - %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 20 }, ptr %51, align 8 - %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %50, 0 - %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %52, ptr %51, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %53) + %51 = load ptr, ptr @_llgo_string, align 8 + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 20 }, ptr %52, align 8 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %51, 0 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %53, ptr %52, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %54) unreachable _llgo_12: ; preds = %_llgo_40 - %54 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C2", align 8 - %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C2" zeroinitializer, ptr %55, align 1 - %56 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %56, ptr %54) - %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %57, 0 - %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %58, ptr %55, 1 - %60 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59) - %61 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I0", align 8 - %62 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %61, ptr %60) - br i1 %62, label %_llgo_41, label %_llgo_42 + %55 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C2", align 8 + %56 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C2" zeroinitializer, ptr %56, align 1 + %57 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %58 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %57, ptr %55) + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %58, 0 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, ptr %56, 1 + %61 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %60) + %62 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I0", align 8 + %63 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %62, ptr %61) + br i1 %63, label %_llgo_41, label %_llgo_42 _llgo_13: ; preds = %_llgo_43 - %63 = load ptr, ptr @_llgo_string, align 8 - %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 17 }, ptr %64, align 8 - %65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %63, 0 - %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %65, ptr %64, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %66) + %64 = load ptr, ptr @_llgo_string, align 8 + %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 17 }, ptr %65, align 8 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %64, 0 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %66, ptr %65, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %67) unreachable _llgo_14: ; preds = %_llgo_43 - %67 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59) - %68 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8 + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %60) + %69 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I1", align 8 + %70 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 1 br i1 true, label %_llgo_44, label %_llgo_45 _llgo_15: ; preds = %_llgo_46 - %69 = load ptr, ptr @_llgo_string, align 8 - %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 17 }, ptr %70, align 8 - %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %69, 0 - %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %71, ptr %70, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %72) + %71 = load ptr, ptr @_llgo_string, align 8 + %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 17 }, ptr %72, align 8 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %71, 0 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %73, ptr %72, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %74) unreachable _llgo_16: ; preds = %_llgo_46 - %73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59) - %74 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8 - %75 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %74, ptr %73) - br i1 %75, label %_llgo_47, label %_llgo_48 + %75 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %60) + %76 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.I2", align 8 + %77 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %76, ptr %75) + br i1 %77, label %_llgo_47, label %_llgo_48 _llgo_17: ; preds = %_llgo_49 - %76 = load ptr, ptr @_llgo_string, align 8 - %77 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 17 }, ptr %77, align 8 - %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %76, 0 - %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %78, ptr %77, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %79) + %78 = load ptr, ptr @_llgo_string, align 8 + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 17 }, ptr %79, align 8 + %80 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %78, 0 + %81 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %80, ptr %79, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %81) unreachable _llgo_18: ; preds = %_llgo_49 - %80 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C1", align 8 - %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) - store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C1" zeroinitializer, ptr %81, align 1 - %82 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %82, ptr %80) - %84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %83, 0 - %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %84, ptr %81, 1 - %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %85) - %87 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %85, 1 - %88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %86, 0 - %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %88, ptr %87, 1 - %90 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %89, %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer) - br i1 %90, label %_llgo_19, label %_llgo_20 + %82 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceconv.C1", align 8 + %83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store %"github.com/goplus/llgo/cl/_testgo/ifaceconv.C1" zeroinitializer, ptr %83, align 1 + %84 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %84, ptr %82) + %86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %85, 0 + %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %86, ptr %83, 1 + %88 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %87) + %89 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %87, 1 + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %88, 0 + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %90, ptr %89, 1 + %92 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %91, %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer) + br i1 %92, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %91 = load ptr, ptr @_llgo_string, align 8 - %92 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 17 }, ptr %92, align 8 - %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %91, 0 - %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %93, ptr %92, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %94) + %93 = load ptr, ptr @_llgo_string, align 8 + %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 17 }, ptr %94, align 8 + %95 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %93, 0 + %96 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %95, ptr %94, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %96) unreachable _llgo_20: ; preds = %_llgo_18 - %95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %85) - %96 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %85, 1 - %97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %95, 0 - %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %97, ptr %96, 1 - %99 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) - %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %99, 0 - %101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %100, ptr null, 1 - %102 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %98, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %101) - br i1 %102, label %_llgo_21, label %_llgo_22 + %97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %87) + %98 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %87, 1 + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %97, 0 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %99, ptr %98, 1 + %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %102 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %101, 0 + %103 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %102, ptr null, 1 + %104 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %100, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %103) + br i1 %104, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %103 = load ptr, ptr @_llgo_string, align 8 - %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 17 }, ptr %104, align 8 - %105 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %103, 0 - %106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %105, ptr %104, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %106) + %105 = load ptr, ptr @_llgo_string, align 8 + %106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 17 }, ptr %106, align 8 + %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %105, 0 + %108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %107, ptr %106, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %108) unreachable _llgo_22: ; preds = %_llgo_20 @@ -306,10 +308,10 @@ _llgo_24: ; preds = %_llgo_0 br label %_llgo_25 _llgo_25: ; preds = %_llgo_24, %_llgo_23 - %107 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer, i1 true }, %_llgo_23 ], [ zeroinitializer, %_llgo_24 ] - %108 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %107, 0 - %109 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %107, 1 - br i1 %109, label %_llgo_1, label %_llgo_2 + %109 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer, i1 true }, %_llgo_23 ], [ zeroinitializer, %_llgo_24 ] + %110 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %109, 0 + %111 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %109, 1 + br i1 %111, label %_llgo_1, label %_llgo_2 _llgo_26: ; preds = %_llgo_2 br label %_llgo_28 @@ -318,10 +320,10 @@ _llgo_27: ; preds = %_llgo_2 br label %_llgo_28 _llgo_28: ; preds = %_llgo_27, %_llgo_26 - %110 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_26 ], [ zeroinitializer, %_llgo_27 ] - %111 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %110, 0 - %112 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %110, 1 - br i1 %112, label %_llgo_3, label %_llgo_4 + %112 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_26 ], [ zeroinitializer, %_llgo_27 ] + %113 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %112, 0 + %114 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %112, 1 + br i1 %114, label %_llgo_3, label %_llgo_4 _llgo_29: ; preds = %_llgo_4 br label %_llgo_31 @@ -330,110 +332,110 @@ _llgo_30: ; preds = %_llgo_4 br label %_llgo_31 _llgo_31: ; preds = %_llgo_30, %_llgo_29 - %113 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_29 ], [ zeroinitializer, %_llgo_30 ] - %114 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %113, 0 - %115 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %113, 1 - br i1 %115, label %_llgo_5, label %_llgo_6 + %115 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, i1 true }, %_llgo_29 ], [ zeroinitializer, %_llgo_30 ] + %116 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %115, 0 + %117 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %115, 1 + br i1 %117, label %_llgo_5, label %_llgo_6 _llgo_32: ; preds = %_llgo_6 - %116 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1 - %117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %34, 0 - %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %117, ptr %116, 1 - %119 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %118, 0 - %120 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %119, i1 true, 1 + %118 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1 + %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %34, 0 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %119, ptr %118, 1 + %121 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %120, 0 + %122 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %121, i1 true, 1 br label %_llgo_34 _llgo_33: ; preds = %_llgo_6 br label %_llgo_34 _llgo_34: ; preds = %_llgo_33, %_llgo_32 - %121 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %120, %_llgo_32 ], [ zeroinitializer, %_llgo_33 ] - %122 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %121, 0 - %123 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %121, 1 - br i1 %123, label %_llgo_8, label %_llgo_7 + %123 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %122, %_llgo_32 ], [ zeroinitializer, %_llgo_33 ] + %124 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %123, 0 + %125 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %123, 1 + br i1 %125, label %_llgo_8, label %_llgo_7 _llgo_35: ; preds = %_llgo_8 - %124 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 0 - %125 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %124, i1 true, 1 + %126 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 0 + %127 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %126, i1 true, 1 br label %_llgo_37 _llgo_36: ; preds = %_llgo_8 br label %_llgo_37 _llgo_37: ; preds = %_llgo_36, %_llgo_35 - %126 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %125, %_llgo_35 ], [ zeroinitializer, %_llgo_36 ] - %127 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %126, 0 - %128 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %126, 1 - br i1 %128, label %_llgo_10, label %_llgo_9 + %128 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %127, %_llgo_35 ], [ zeroinitializer, %_llgo_36 ] + %129 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %128, 0 + %130 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %128, 1 + br i1 %130, label %_llgo_10, label %_llgo_9 _llgo_38: ; preds = %_llgo_10 - %129 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1 - %130 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 - %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %130, ptr %47) - %132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %131, 0 - %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %132, ptr %129, 1 - %134 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %133, 0 - %135 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %134, i1 true, 1 + %131 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %33, 1 + %132 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 + %133 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %132, ptr %48) + %134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %133, 0 + %135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %134, ptr %131, 1 + %136 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %135, 0 + %137 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %136, i1 true, 1 br label %_llgo_40 _llgo_39: ; preds = %_llgo_10 br label %_llgo_40 _llgo_40: ; preds = %_llgo_39, %_llgo_38 - %136 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %135, %_llgo_38 ], [ zeroinitializer, %_llgo_39 ] - %137 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %136, 0 - %138 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %136, 1 - br i1 %138, label %_llgo_11, label %_llgo_12 + %138 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %137, %_llgo_38 ], [ zeroinitializer, %_llgo_39 ] + %139 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %138, 0 + %140 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %138, 1 + br i1 %140, label %_llgo_11, label %_llgo_12 _llgo_41: ; preds = %_llgo_12 - %139 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 1 - %140 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %60, 0 - %141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %140, ptr %139, 1 - %142 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %141, 0 - %143 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %142, i1 true, 1 + %141 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 1 + %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %61, 0 + %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %142, ptr %141, 1 + %144 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %143, 0 + %145 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %144, i1 true, 1 br label %_llgo_43 _llgo_42: ; preds = %_llgo_12 br label %_llgo_43 _llgo_43: ; preds = %_llgo_42, %_llgo_41 - %144 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %143, %_llgo_41 ], [ zeroinitializer, %_llgo_42 ] - %145 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %144, 0 - %146 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %144, 1 - br i1 %146, label %_llgo_14, label %_llgo_13 + %146 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %145, %_llgo_41 ], [ zeroinitializer, %_llgo_42 ] + %147 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %146, 0 + %148 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %146, 1 + br i1 %148, label %_llgo_14, label %_llgo_13 _llgo_44: ; preds = %_llgo_14 - %147 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 0 - %148 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %147, i1 true, 1 + %149 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 0 + %150 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %149, i1 true, 1 br label %_llgo_46 _llgo_45: ; preds = %_llgo_14 br label %_llgo_46 _llgo_46: ; preds = %_llgo_45, %_llgo_44 - %149 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %148, %_llgo_44 ], [ zeroinitializer, %_llgo_45 ] - %150 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %149, 0 - %151 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %149, 1 - br i1 %151, label %_llgo_16, label %_llgo_15 + %151 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %150, %_llgo_44 ], [ zeroinitializer, %_llgo_45 ] + %152 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %151, 0 + %153 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %151, 1 + br i1 %153, label %_llgo_16, label %_llgo_15 _llgo_47: ; preds = %_llgo_16 - %152 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 1 - %153 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 - %154 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %153, ptr %73) - %155 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %154, 0 - %156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %155, ptr %152, 1 - %157 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %156, 0 - %158 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %157, i1 true, 1 + %154 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 1 + %155 = load ptr, ptr @"github.com/goplus/llgo/cl/_testgo/ifaceconv.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 + %156 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %155, ptr %75) + %157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %156, 0 + %158 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %157, ptr %154, 1 + %159 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %158, 0 + %160 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %159, i1 true, 1 br label %_llgo_49 _llgo_48: ; preds = %_llgo_16 br label %_llgo_49 _llgo_49: ; preds = %_llgo_48, %_llgo_47 - %159 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %158, %_llgo_47 ], [ zeroinitializer, %_llgo_48 ] - %160 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %159, 0 - %161 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %159, 1 - br i1 %161, label %_llgo_18, label %_llgo_17 + %161 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %160, %_llgo_47 ], [ zeroinitializer, %_llgo_48 ] + %162 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %161, 0 + %163 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %161, 1 + br i1 %163, label %_llgo_18, label %_llgo_17 } define void @"github.com/goplus/llgo/cl/_testgo/ifaceconv.init$after"() { diff --git a/cl/_testgo/ifaceprom/out.ll b/cl/_testgo/ifaceprom/out.ll index ab5a8118..acba03fb 100644 --- a/cl/_testgo/ifaceprom/out.ll +++ b/cl/_testgo/ifaceprom/out.ll @@ -203,111 +203,115 @@ _llgo_4: ; preds = %_llgo_2 %43 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %42, align 8 %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %43) %45 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8 + %46 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %43, 1 br i1 true, label %_llgo_17, label %_llgo_18 _llgo_5: ; preds = %_llgo_17 - %46 = load ptr, ptr @_llgo_int, align 8 - %47 = inttoptr i64 %113 to ptr - %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %46, 0 - %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %48, ptr %47, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %49) + %47 = load ptr, ptr @_llgo_int, align 8 + %48 = inttoptr i64 %117 to ptr + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %47, 0 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %49, ptr %48, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %50) unreachable _llgo_6: ; preds = %_llgo_17 - %50 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8 - %51 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %50, 0 - %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %51) - %53 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8 + %51 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8 + %52 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %51, 0 + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %52) + %54 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8 + %55 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %52, 1 br i1 true, label %_llgo_19, label %_llgo_20 _llgo_7: ; preds = %_llgo_19 - %54 = load ptr, ptr @_llgo_int, align 8 - %55 = inttoptr i64 %124 to ptr - %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %54, 0 - %57 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %56, ptr %55, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %57) + %56 = load ptr, ptr @_llgo_int, align 8 + %57 = inttoptr i64 %128 to ptr + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %56, 0 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %58, ptr %57, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %59) unreachable _llgo_8: ; preds = %_llgo_19 - %58 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0 - %59 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %58, align 8 - %60 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %59) - %61 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %59, 0 - %62 = getelementptr ptr, ptr %61, i64 4 - %63 = load ptr, ptr %62, align 8 - %64 = insertvalue { ptr, ptr } undef, ptr %63, 0 - %65 = insertvalue { ptr, ptr } %64, ptr %60, 1 - %66 = extractvalue { ptr, ptr } %65, 1 - %67 = extractvalue { ptr, ptr } %65, 0 - %68 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %67(ptr %66) - %69 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %68, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) - %70 = xor i1 %69, true - br i1 %70, label %_llgo_9, label %_llgo_10 + %60 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0 + %61 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %60, align 8 + %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %61) + %63 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %61, 0 + %64 = getelementptr ptr, ptr %63, i64 4 + %65 = load ptr, ptr %64, align 8 + %66 = insertvalue { ptr, ptr } undef, ptr %65, 0 + %67 = insertvalue { ptr, ptr } %66, ptr %62, 1 + %68 = extractvalue { ptr, ptr } %67, 1 + %69 = extractvalue { ptr, ptr } %67, 0 + %70 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %69(ptr %68) + %71 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %70, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %72 = xor i1 %71, true + br i1 %72, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %71 = load ptr, ptr @_llgo_string, align 8 - %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" %68, ptr %72, align 8 - %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %71, 0 - %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %73, ptr %72, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %74) + %73 = load ptr, ptr @_llgo_string, align 8 + %74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %70, ptr %74, align 8 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %73, 0 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %75, ptr %74, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %76) unreachable _llgo_10: ; preds = %_llgo_8 - %75 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8 - %76 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %75, 0 - %77 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %76) - %78 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %76, 0 - %79 = getelementptr ptr, ptr %78, i64 4 - %80 = load ptr, ptr %79, align 8 - %81 = insertvalue { ptr, ptr } undef, ptr %80, 0 - %82 = insertvalue { ptr, ptr } %81, ptr %77, 1 - %83 = extractvalue { ptr, ptr } %82, 1 - %84 = extractvalue { ptr, ptr } %82, 0 - %85 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %84(ptr %83) - %86 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %85, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) - %87 = xor i1 %86, true - br i1 %87, label %_llgo_11, label %_llgo_12 + %77 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8 + %78 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %77, 0 + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %78) + %80 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %78, 0 + %81 = getelementptr ptr, ptr %80, i64 4 + %82 = load ptr, ptr %81, align 8 + %83 = insertvalue { ptr, ptr } undef, ptr %82, 0 + %84 = insertvalue { ptr, ptr } %83, ptr %79, 1 + %85 = extractvalue { ptr, ptr } %84, 1 + %86 = extractvalue { ptr, ptr } %84, 0 + %87 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %86(ptr %85) + %88 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %87, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %89 = xor i1 %88, true + br i1 %89, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %88 = load ptr, ptr @_llgo_string, align 8 - %89 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" %85, ptr %89, align 8 - %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %88, 0 - %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %90, ptr %89, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %91) + %90 = load ptr, ptr @_llgo_string, align 8 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %87, ptr %91, align 8 + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %90, 0 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %92, ptr %91, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %93) unreachable _llgo_12: ; preds = %_llgo_10 - %92 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0 - %93 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %92, align 8 - %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %93) - %95 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8 + %94 = getelementptr inbounds %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, i32 0, i32 0 + %95 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %94, align 8 + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %95) + %97 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8 + %98 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %95, 1 br i1 true, label %_llgo_21, label %_llgo_22 _llgo_13: ; preds = %_llgo_21 - %96 = load ptr, ptr @_llgo_string, align 8 - %97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" %135, ptr %97, align 8 - %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %96, 0 - %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %98, ptr %97, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %99) + %99 = load ptr, ptr @_llgo_string, align 8 + %100 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %139, ptr %100, align 8 + %101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %99, 0 + %102 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %101, ptr %100, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %102) unreachable _llgo_14: ; preds = %_llgo_21 - %100 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8 - %101 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %100, 0 - %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %101) - %103 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8 + %103 = load %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S", ptr %0, align 8 + %104 = extractvalue %"github.com/goplus/llgo/cl/_testgo/ifaceprom.S" %103, 0 + %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %104) + %106 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/_testgo/ifaceprom.I", align 8 + %107 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %104, 1 br i1 true, label %_llgo_23, label %_llgo_24 _llgo_15: ; preds = %_llgo_23 - %104 = load ptr, ptr @_llgo_string, align 8 - %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" %147, ptr %105, align 8 - %106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %104, 0 - %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %106, ptr %105, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %107) + %108 = load ptr, ptr @_llgo_string, align 8 + %109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %151, ptr %109, align 8 + %110 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %108, 0 + %111 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %110, ptr %109, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %111) unreachable _llgo_16: ; preds = %_llgo_23 @@ -316,85 +320,85 @@ _llgo_16: ; preds = %_llgo_23 ret void _llgo_17: ; preds = %_llgo_4 - %108 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %109 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %108, i32 0, i32 0 - store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %43, ptr %109, align 8 - %110 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %108, 1 - %111 = extractvalue { ptr, ptr } %110, 1 - %112 = extractvalue { ptr, ptr } %110, 0 - %113 = call i64 %112(ptr %111) - %114 = icmp ne i64 %113, 1 - br i1 %114, label %_llgo_5, label %_llgo_6 + %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %113 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %112, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %43, ptr %113, align 8 + %114 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %112, 1 + %115 = extractvalue { ptr, ptr } %114, 1 + %116 = extractvalue { ptr, ptr } %114, 0 + %117 = call i64 %116(ptr %115) + %118 = icmp ne i64 %117, 1 + br i1 %118, label %_llgo_5, label %_llgo_6 _llgo_18: ; preds = %_llgo_4 - %115 = load ptr, ptr @_llgo_string, align 8 - %116 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %116, align 8 - %117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %115, 0 - %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %117, ptr %116, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %118) + %119 = load ptr, ptr @_llgo_string, align 8 + %120 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %120, align 8 + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %119, 0 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %121, ptr %120, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %122) unreachable _llgo_19: ; preds = %_llgo_6 - %119 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %120 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %119, i32 0, i32 0 - store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %51, ptr %120, align 8 - %121 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %119, 1 - %122 = extractvalue { ptr, ptr } %121, 1 - %123 = extractvalue { ptr, ptr } %121, 0 - %124 = call i64 %123(ptr %122) - %125 = icmp ne i64 %124, 1 - br i1 %125, label %_llgo_7, label %_llgo_8 + %123 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %124 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %123, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %52, ptr %124, align 8 + %125 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.one$bound", ptr undef }, ptr %123, 1 + %126 = extractvalue { ptr, ptr } %125, 1 + %127 = extractvalue { ptr, ptr } %125, 0 + %128 = call i64 %127(ptr %126) + %129 = icmp ne i64 %128, 1 + br i1 %129, label %_llgo_7, label %_llgo_8 _llgo_20: ; preds = %_llgo_6 - %126 = load ptr, ptr @_llgo_string, align 8 - %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %127, align 8 - %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %126, 0 - %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %128, ptr %127, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %129) + %130 = load ptr, ptr @_llgo_string, align 8 + %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %131, align 8 + %132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %130, 0 + %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %132, ptr %131, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %133) unreachable _llgo_21: ; preds = %_llgo_12 - %130 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %131 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %130, i32 0, i32 0 - store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %93, ptr %131, align 8 - %132 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %130, 1 - %133 = extractvalue { ptr, ptr } %132, 1 - %134 = extractvalue { ptr, ptr } %132, 0 - %135 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %134(ptr %133) - %136 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %135, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) - %137 = xor i1 %136, true - br i1 %137, label %_llgo_13, label %_llgo_14 + %134 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %135 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %134, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %95, ptr %135, align 8 + %136 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %134, 1 + %137 = extractvalue { ptr, ptr } %136, 1 + %138 = extractvalue { ptr, ptr } %136, 0 + %139 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %138(ptr %137) + %140 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %139, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %141 = xor i1 %140, true + br i1 %141, label %_llgo_13, label %_llgo_14 _llgo_22: ; preds = %_llgo_12 - %138 = load ptr, ptr @_llgo_string, align 8 - %139 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %139, align 8 - %140 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %138, 0 - %141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %140, ptr %139, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %141) + %142 = load ptr, ptr @_llgo_string, align 8 + %143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %143, align 8 + %144 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %142, 0 + %145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %144, ptr %143, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %145) unreachable _llgo_23: ; preds = %_llgo_14 - %142 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - %143 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %142, i32 0, i32 0 - store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %101, ptr %143, align 8 - %144 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %142, 1 - %145 = extractvalue { ptr, ptr } %144, 1 - %146 = extractvalue { ptr, ptr } %144, 0 - %147 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %146(ptr %145) - %148 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %147, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) - %149 = xor i1 %148, true - br i1 %149, label %_llgo_15, label %_llgo_16 + %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %147 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %146, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %104, ptr %147, align 8 + %148 = insertvalue { ptr, ptr } { ptr @"github.com/goplus/llgo/cl/_testgo/ifaceprom.I.two$bound", ptr undef }, ptr %146, 1 + %149 = extractvalue { ptr, ptr } %148, 1 + %150 = extractvalue { ptr, ptr } %148, 0 + %151 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %150(ptr %149) + %152 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %151, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %153 = xor i1 %152, true + br i1 %153, label %_llgo_15, label %_llgo_16 _llgo_24: ; preds = %_llgo_14 - %150 = load ptr, ptr @_llgo_string, align 8 - %151 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %151, align 8 - %152 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %150, 0 - %153 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %152, ptr %151, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %153) + %154 = load ptr, ptr @_llgo_string, align 8 + %155 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 116 }, ptr %155, align 8 + %156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %154, 0 + %157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %156, ptr %155, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %157) unreachable } diff --git a/cl/_testgo/invoke/out.ll b/cl/_testgo/invoke/out.ll index 3ae5d673..cdd46706 100644 --- a/cl/_testgo/invoke/out.ll +++ b/cl/_testgo/invoke/out.ll @@ -393,48 +393,49 @@ _llgo_1: ; preds = %_llgo_0 call void @"github.com/goplus/llgo/cl/_testgo/invoke.invoke"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %124) %125 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 0 %126 = load ptr, ptr @_llgo_any, align 8 + %127 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 1 br i1 true, label %_llgo_3, label %_llgo_4 _llgo_2: ; preds = %_llgo_0 - %127 = load ptr, ptr @_llgo_string, align 8 - %128 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 71 }, ptr %128, align 8 - %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %127, 0 - %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %129, ptr %128, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %130) + %128 = load ptr, ptr @_llgo_string, align 8 + %129 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 71 }, ptr %129, align 8 + %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %128, 0 + %131 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %130, ptr %129, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %131) unreachable _llgo_3: ; preds = %_llgo_1 - %131 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 0 - %132 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %133 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %132, ptr %131) - br i1 %133, label %_llgo_5, label %_llgo_6 + %132 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 0 + %133 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %134 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %133, ptr %132) + br i1 %134, label %_llgo_5, label %_llgo_6 _llgo_4: ; preds = %_llgo_1 - %134 = load ptr, ptr @_llgo_string, align 8 - %135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 32 }, ptr %135, align 8 - %136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %134, 0 - %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %136, ptr %135, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %137) + %135 = load ptr, ptr @_llgo_string, align 8 + %136 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 32 }, ptr %136, align 8 + %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %135, 0 + %138 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %137, ptr %136, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %138) unreachable _llgo_5: ; preds = %_llgo_3 - %138 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 1 - %139 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %139, ptr %131) - %141 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %140, 0 - %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %141, ptr %138, 1 - call void @"github.com/goplus/llgo/cl/_testgo/invoke.invoke"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %142) + %139 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %116, 1 + %140 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %140, ptr %132) + %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %141, 0 + %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %142, ptr %139, 1 + call void @"github.com/goplus/llgo/cl/_testgo/invoke.invoke"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %143) ret void _llgo_6: ; preds = %_llgo_3 - %143 = load ptr, ptr @_llgo_string, align 8 - %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 52 }, ptr %144, align 8 - %145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %143, 0 - %146 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %145, ptr %144, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %146) + %144 = load ptr, ptr @_llgo_string, align 8 + %145 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 52 }, ptr %145, align 8 + %146 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %144, 0 + %147 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %146, ptr %145, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %147) unreachable } diff --git a/cl/_testlibc/complex/out.ll b/cl/_testlibc/complex/out.ll index ce35fe33..1c8a0e79 100644 --- a/cl/_testlibc/complex/out.ll +++ b/cl/_testlibc/complex/out.ll @@ -1,66 +1 @@ -; ModuleID = 'github.com/goplus/llgo/cl/_testlibc/complex' -source_filename = "github.com/goplus/llgo/cl/_testlibc/complex" - -%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } - -@"github.com/goplus/llgo/cl/_testlibc/complex.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [5 x i8] c"addr:", align 1 -@1 = private unnamed_addr constant [10 x i8] c"abs(3+4i):", align 1 -@2 = private unnamed_addr constant [11 x i8] c"real(3+4i):", align 1 -@3 = private unnamed_addr constant [11 x i8] c"imag(3+4i):", align 1 - -define void @"github.com/goplus/llgo/cl/_testlibc/complex.f"({ float, float } %0, { float, float } %1, ptr %2) { -_llgo_0: - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %2) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) - %3 = call float @cabsf({ float, float } %0) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 10 }) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) - %4 = fpext float %3 to double - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %4) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) - %5 = extractvalue { float, float } %1, 0 - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 11 }) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) - %6 = fpext float %5 to double - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %6) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) - %7 = extractvalue { float, float } %1, 1 - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 11 }) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) - %8 = fpext float %7 to double - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %8) - call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @"github.com/goplus/llgo/cl/_testlibc/complex.init"() { -_llgo_0: - %0 = load i1, ptr @"github.com/goplus/llgo/cl/_testlibc/complex.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"github.com/goplus/llgo/cl/_testlibc/complex.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define void @"github.com/goplus/llgo/cl/_testlibc/complex.main"() { -_llgo_0: - call void @"github.com/goplus/llgo/cl/_testlibc/complex.f"({ float, float } { float 3.000000e+00, float 4.000000e+00 }, { float, float } { float 3.000000e+00, float 4.000000e+00 }, ptr @"github.com/goplus/llgo/cl/_testlibc/complex.f") - ret void -} - -declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") - -declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) - -declare float @cabsf({ float, float }) - -declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) +; \ No newline at end of file diff --git a/cl/_testpy/list/in.go b/cl/_testpy/list/in.go index f963d0a5..3cbc8604 100644 --- a/cl/_testpy/list/in.go +++ b/cl/_testpy/list/in.go @@ -1,14 +1,17 @@ package main import ( + "unsafe" + "github.com/goplus/lib/py" "github.com/goplus/lib/py/math" "github.com/goplus/lib/py/std" ) func main() { + v := 100 x := py.List(true, false, 1, float32(2.1), 3.1, uint(4), 1+2i, complex64(3+4i), - "hello", []byte("world"), [...]byte{1, 2, 3}, [...]byte{}) + "hello", []byte("world"), [...]byte{1, 2, 3}, [...]byte{}, &v, unsafe.Pointer(&v)) y := py.List(std.Abs, std.Print, math.Pi) std.Print(x, y) } diff --git a/cl/_testpy/list/out.ll b/cl/_testpy/list/out.ll index 1552fc5e..2841773a 100644 --- a/cl/_testpy/list/out.ll +++ b/cl/_testpy/list/out.ll @@ -34,57 +34,65 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 define void @"github.com/goplus/llgo/cl/_testpy/list.main"() { _llgo_0: - %0 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) - %1 = alloca [3 x i8], align 1 - call void @llvm.memset(ptr %1, i8 0, i64 3, i1 false) - %2 = getelementptr inbounds i8, ptr %1, i64 0 - %3 = getelementptr inbounds i8, ptr %1, i64 1 - %4 = getelementptr inbounds i8, ptr %1, i64 2 - store i8 1, ptr %2, align 1 - store i8 2, ptr %3, align 1 - store i8 3, ptr %4, align 1 - %5 = load [3 x i8], ptr %1, align 1 - %6 = call ptr @PyList_New(i64 12) - %7 = call ptr @PyBool_FromLong(i32 -1) - %8 = call i32 @PyList_SetItem(ptr %6, i64 0, ptr %7) - %9 = call ptr @PyBool_FromLong(i32 0) - %10 = call i32 @PyList_SetItem(ptr %6, i64 1, ptr %9) - %11 = call ptr @PyLong_FromLongLong(i64 1) - %12 = call i32 @PyList_SetItem(ptr %6, i64 2, ptr %11) - %13 = call ptr @PyFloat_FromDouble(double 0x4000CCCCC0000000) - %14 = call i32 @PyList_SetItem(ptr %6, i64 3, ptr %13) - %15 = call ptr @PyFloat_FromDouble(double 3.100000e+00) - %16 = call i32 @PyList_SetItem(ptr %6, i64 4, ptr %15) - %17 = call ptr @PyLong_FromUnsignedLongLong(i64 4) - %18 = call i32 @PyList_SetItem(ptr %6, i64 5, ptr %17) - %19 = call ptr @PyComplex_FromDoubles(double 1.000000e+00, double 2.000000e+00) - %20 = call i32 @PyList_SetItem(ptr %6, i64 6, ptr %19) - %21 = call ptr @PyComplex_FromDoubles(double 3.000000e+00, double 4.000000e+00) - %22 = call i32 @PyList_SetItem(ptr %6, i64 7, ptr %21) - %23 = call ptr @PyUnicode_FromStringAndSize(ptr @1, i64 5) - %24 = call i32 @PyList_SetItem(ptr %6, i64 8, ptr %23) - %25 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 0 - %26 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 - %27 = call ptr @PyByteArray_FromStringAndSize(ptr %25, i64 %26) - %28 = call i32 @PyList_SetItem(ptr %6, i64 9, ptr %27) - %29 = alloca [3 x i8], align 1 - call void @llvm.memset(ptr %29, i8 0, i64 3, i1 false) - store [3 x i8] %5, ptr %29, align 1 - %30 = getelementptr inbounds ptr, ptr %29, i64 0 - %31 = call ptr @PyBytes_FromStringAndSize(ptr %30, i64 3) - %32 = call i32 @PyList_SetItem(ptr %6, i64 10, ptr %31) - %33 = call ptr @PyBytes_FromStringAndSize(ptr null, i64 0) - %34 = call i32 @PyList_SetItem(ptr %6, i64 11, ptr %33) - %35 = load ptr, ptr @__llgo_py.math, align 8 - %36 = call ptr @PyObject_GetAttrString(ptr %35, ptr @2) - %37 = call ptr @PyList_New(i64 3) - %38 = load ptr, ptr @__llgo_py.builtins.abs, align 8 - %39 = call i32 @PyList_SetItem(ptr %37, i64 0, ptr %38) - %40 = load ptr, ptr @__llgo_py.builtins.print, align 8 - %41 = call i32 @PyList_SetItem(ptr %37, i64 1, ptr %40) - %42 = call i32 @PyList_SetItem(ptr %37, i64 2, ptr %36) - %43 = load ptr, ptr @__llgo_py.builtins.print, align 8 - %44 = call ptr (ptr, ...) @PyObject_CallFunctionObjArgs(ptr %43, ptr %6, ptr %37, ptr null) + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + store i64 100, ptr %0, align 4 + %1 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) + %2 = alloca [3 x i8], align 1 + call void @llvm.memset(ptr %2, i8 0, i64 3, i1 false) + %3 = getelementptr inbounds i8, ptr %2, i64 0 + %4 = getelementptr inbounds i8, ptr %2, i64 1 + %5 = getelementptr inbounds i8, ptr %2, i64 2 + store i8 1, ptr %3, align 1 + store i8 2, ptr %4, align 1 + store i8 3, ptr %5, align 1 + %6 = load [3 x i8], ptr %2, align 1 + %7 = call ptr @PyList_New(i64 14) + %8 = call ptr @PyBool_FromLong(i32 -1) + %9 = call i32 @PyList_SetItem(ptr %7, i64 0, ptr %8) + %10 = call ptr @PyBool_FromLong(i32 0) + %11 = call i32 @PyList_SetItem(ptr %7, i64 1, ptr %10) + %12 = call ptr @PyLong_FromLongLong(i64 1) + %13 = call i32 @PyList_SetItem(ptr %7, i64 2, ptr %12) + %14 = call ptr @PyFloat_FromDouble(double 0x4000CCCCC0000000) + %15 = call i32 @PyList_SetItem(ptr %7, i64 3, ptr %14) + %16 = call ptr @PyFloat_FromDouble(double 3.100000e+00) + %17 = call i32 @PyList_SetItem(ptr %7, i64 4, ptr %16) + %18 = call ptr @PyLong_FromUnsignedLongLong(i64 4) + %19 = call i32 @PyList_SetItem(ptr %7, i64 5, ptr %18) + %20 = call ptr @PyComplex_FromDoubles(double 1.000000e+00, double 2.000000e+00) + %21 = call i32 @PyList_SetItem(ptr %7, i64 6, ptr %20) + %22 = call ptr @PyComplex_FromDoubles(double 3.000000e+00, double 4.000000e+00) + %23 = call i32 @PyList_SetItem(ptr %7, i64 7, ptr %22) + %24 = call ptr @PyUnicode_FromStringAndSize(ptr @1, i64 5) + %25 = call i32 @PyList_SetItem(ptr %7, i64 8, ptr %24) + %26 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 0 + %27 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 + %28 = call ptr @PyByteArray_FromStringAndSize(ptr %26, i64 %27) + %29 = call i32 @PyList_SetItem(ptr %7, i64 9, ptr %28) + %30 = alloca [3 x i8], align 1 + call void @llvm.memset(ptr %30, i8 0, i64 3, i1 false) + store [3 x i8] %6, ptr %30, align 1 + %31 = getelementptr inbounds ptr, ptr %30, i64 0 + %32 = call ptr @PyBytes_FromStringAndSize(ptr %31, i64 3) + %33 = call i32 @PyList_SetItem(ptr %7, i64 10, ptr %32) + %34 = call ptr @PyBytes_FromStringAndSize(ptr null, i64 0) + %35 = call i32 @PyList_SetItem(ptr %7, i64 11, ptr %34) + %36 = ptrtoint ptr %0 to i64 + %37 = call ptr @PyLong_FromUnsignedLongLong(i64 %36) + %38 = call i32 @PyList_SetItem(ptr %7, i64 12, ptr %37) + %39 = ptrtoint ptr %0 to i64 + %40 = call ptr @PyLong_FromUnsignedLongLong(i64 %39) + %41 = call i32 @PyList_SetItem(ptr %7, i64 13, ptr %40) + %42 = load ptr, ptr @__llgo_py.math, align 8 + %43 = call ptr @PyObject_GetAttrString(ptr %42, ptr @2) + %44 = call ptr @PyList_New(i64 3) + %45 = load ptr, ptr @__llgo_py.builtins.abs, align 8 + %46 = call i32 @PyList_SetItem(ptr %44, i64 0, ptr %45) + %47 = load ptr, ptr @__llgo_py.builtins.print, align 8 + %48 = call i32 @PyList_SetItem(ptr %44, i64 1, ptr %47) + %49 = call i32 @PyList_SetItem(ptr %44, i64 2, ptr %43) + %50 = load ptr, ptr @__llgo_py.builtins.print, align 8 + %51 = call ptr (ptr, ...) @PyObject_CallFunctionObjArgs(ptr %50, ptr %7, ptr %44, ptr null) ret void } @@ -92,6 +100,8 @@ declare void @"github.com/goplus/lib/py/math.init"() declare void @"github.com/goplus/lib/py/std.init"() +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) diff --git a/cl/_testrt/asm/in.go b/cl/_testrt/asm/in.go new file mode 100644 index 00000000..74d9a68c --- /dev/null +++ b/cl/_testrt/asm/in.go @@ -0,0 +1,10 @@ +package main + +import _ "unsafe" + +//go:linkname asm llgo.asm +func asm(instruction string) + +func main() { + asm("nop") +} diff --git a/cl/_testrt/asm/out.ll b/cl/_testrt/asm/out.ll new file mode 100644 index 00000000..164617e3 --- /dev/null +++ b/cl/_testrt/asm/out.ll @@ -0,0 +1,23 @@ +; ModuleID = 'github.com/goplus/llgo/cl/_testrt/asm' +source_filename = "github.com/goplus/llgo/cl/_testrt/asm" + +@"github.com/goplus/llgo/cl/_testrt/asm.init$guard" = global i1 false, align 1 + +define void @"github.com/goplus/llgo/cl/_testrt/asm.init"() { +_llgo_0: + %0 = load i1, ptr @"github.com/goplus/llgo/cl/_testrt/asm.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"github.com/goplus/llgo/cl/_testrt/asm.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define void @"github.com/goplus/llgo/cl/_testrt/asm.main"() { +_llgo_0: + call void asm sideeffect "nop", ""() + ret void +} diff --git a/cl/import.go b/cl/import.go index b70d0046..62318981 100644 --- a/cl/import.go +++ b/cl/import.go @@ -506,6 +506,8 @@ const ( llgoCgoCheckPointer = llgoCgoBase + 0x6 llgoCgoCgocall = llgoCgoBase + 0x7 + llgoAsm = llgoInstrBase + 0x40 + llgoAtomicOpLast = llgoAtomicOpBase + int(llssa.OpUMin) ) diff --git a/cl/instr.go b/cl/instr.go index 2865fb2c..e988bc01 100644 --- a/cl/instr.go +++ b/cl/instr.go @@ -66,6 +66,17 @@ func cstr(b llssa.Builder, args []ssa.Value) (ret llssa.Expr) { panic("cstr(): invalid arguments") } +// func asm(string) +func asm(b llssa.Builder, args []ssa.Value) (ret llssa.Expr) { + if len(args) == 1 { + if sv, ok := constStr(args[0]); ok { + b.InlineAsm(sv) + return llssa.Expr{Type: b.Prog.Void()} + } + } + panic("asm(): invalid arguments") +} + // ----------------------------------------------------------------------------- // func _Cfunc_CString(s string) *int8 @@ -329,6 +340,8 @@ var llgoInstrs = map[string]int{ "_Cfunc__CMalloc": llgoCgoCMalloc, "_cgoCheckPointer": llgoCgoCheckPointer, "_cgo_runtime_cgocall": llgoCgoCgocall, + + "asm": llgoAsm, } // funcOf returns a function by name and set ftype = goFunc, cFunc, etc. @@ -456,6 +469,8 @@ func (p *context) call(b llssa.Builder, act llssa.DoAction, call *ssa.CallCommon ret = pystr(b, args) case llgoCstr: ret = cstr(b, args) + case llgoAsm: + ret = asm(b, args) case llgoCgoCString: ret = p.cgoCString(b, args) case llgoCgoCBytes: diff --git a/cmd/internal/build/build.go b/cmd/internal/build/build.go index 39ab5db8..58657c1c 100644 --- a/cmd/internal/build/build.go +++ b/cmd/internal/build/build.go @@ -51,6 +51,7 @@ func runCmd(cmd *base.Command, args []string) { conf.Verbose = flags.Verbose conf.OutFile = flags.OutputFile conf.Target = flags.Target + conf.AbiMode = build.AbiMode(flags.AbiMode) args = cmd.Flag.Args() diff --git a/cmd/internal/flags/flags.go b/cmd/internal/flags/flags.go index e21f27b6..4159e58f 100644 --- a/cmd/internal/flags/flags.go +++ b/cmd/internal/flags/flags.go @@ -2,6 +2,8 @@ package flags import ( "flag" + + "github.com/goplus/llgo/internal/buildenv" ) var OutputFile string @@ -14,12 +16,18 @@ var Verbose bool var BuildEnv string var Tags string var Target string +var AbiMode int func AddBuildFlags(fs *flag.FlagSet) { fs.BoolVar(&Verbose, "v", false, "Verbose mode") fs.StringVar(&Tags, "tags", "", "Build tags") fs.StringVar(&BuildEnv, "buildenv", "", "Build environment") fs.StringVar(&Target, "target", "", "Target platform (e.g., rp2040, wasi)") + if buildenv.Dev { + fs.IntVar(&AbiMode, "abi", 2, "ABI mode (default 2). 0 = none, 1 = cfunc, 2 = allfunc.") + } else { + AbiMode = 2 + } } var Gen bool diff --git a/cmd/internal/install/install.go b/cmd/internal/install/install.go index 9e17a986..96fb7275 100644 --- a/cmd/internal/install/install.go +++ b/cmd/internal/install/install.go @@ -47,6 +47,7 @@ func runCmd(cmd *base.Command, args []string) { conf := build.NewDefaultConf(build.ModeInstall) conf.Tags = flags.Tags conf.Verbose = flags.Verbose + conf.AbiMode = build.AbiMode(flags.AbiMode) args = cmd.Flag.Args() _, err := build.Do(args, conf) diff --git a/cmd/internal/run/run.go b/cmd/internal/run/run.go index 93b7bb41..dc4e53e7 100644 --- a/cmd/internal/run/run.go +++ b/cmd/internal/run/run.go @@ -72,6 +72,7 @@ func runCmdEx(cmd *base.Command, args []string, mode build.Mode) { conf.Verbose = flags.Verbose conf.GenExpect = flags.Gen conf.Target = flags.Target + conf.AbiMode = build.AbiMode(flags.AbiMode) args = cmd.Flag.Args() args, runArgs, err := parseRunArgs(args) diff --git a/cmd/internal/test/test.go b/cmd/internal/test/test.go index 34516381..557094c3 100644 --- a/cmd/internal/test/test.go +++ b/cmd/internal/test/test.go @@ -30,6 +30,7 @@ func runCmd(cmd *base.Command, args []string) { conf.Tags = flags.Tags conf.Verbose = flags.Verbose conf.Target = flags.Target + conf.AbiMode = build.AbiMode(flags.AbiMode) args = cmd.Flag.Args() _, err := build.Do(args, conf) diff --git a/go.mod b/go.mod index 8e1814e2..c0be0ef7 100644 --- a/go.mod +++ b/go.mod @@ -6,17 +6,17 @@ toolchain go1.24.1 require ( github.com/goplus/cobra v1.9.12 //gop:class - github.com/goplus/gogen v1.19.0 + github.com/goplus/gogen v1.19.1 github.com/goplus/lib v0.2.0 github.com/goplus/llgo/runtime v0.0.0-00010101000000-000000000000 - github.com/goplus/llvm v0.8.3 + github.com/goplus/llvm v0.8.5 github.com/goplus/mod v0.17.1 github.com/qiniu/x v1.15.1 - golang.org/x/tools v0.35.0 + golang.org/x/tools v0.36.0 ) require ( - golang.org/x/mod v0.26.0 // indirect + golang.org/x/mod v0.27.0 // indirect golang.org/x/sync v0.16.0 // indirect ) diff --git a/go.sum b/go.sum index abf7326f..0dee84cd 100644 --- a/go.sum +++ b/go.sum @@ -2,19 +2,19 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/goplus/cobra v1.9.12 h1:0F9EdEbeGyITGz+mqoHoJ5KpUw97p1CkxV74IexHw5s= github.com/goplus/cobra v1.9.12/go.mod h1:p4LhfNJDKEpiGjGiNn0crUXL5dUPA5DX2ztYpEJR34E= -github.com/goplus/gogen v1.19.0 h1:eRi3pEDfICO6saw+JZ/jWPfBYTP7CkV6cjTsNjhhC4k= -github.com/goplus/gogen v1.19.0/go.mod h1:owX2e1EyU5WD+Nm6oH2m/GXjLdlBYcwkLO4wN8HHXZI= +github.com/goplus/gogen v1.19.1 h1:L7jz60azeowj8zUq48tozETriTPBLqHb0nDj6PheANc= +github.com/goplus/gogen v1.19.1/go.mod h1:owX2e1EyU5WD+Nm6oH2m/GXjLdlBYcwkLO4wN8HHXZI= github.com/goplus/lib v0.2.0 h1:AjqkN1XK5H23wZMMlpaUYAMCDAdSBQ2NMFrLtSh7W4g= github.com/goplus/lib v0.2.0/go.mod h1:SgJv3oPqLLHCu0gcL46ejOP3x7/2ry2Jtxu7ta32kp0= -github.com/goplus/llvm v0.8.3 h1:is1zOwhiQZWtLnOmSMVPO+1sPa2uK/XJ/FjTSfIjGBU= -github.com/goplus/llvm v0.8.3/go.mod h1:PeVK8GgzxwAYCiMiUAJb5wJR6xbhj989tu9oulKLLT4= +github.com/goplus/llvm v0.8.5 h1:DUnFeYC3Rco622tBEKGg8xkigRAV2fh5ZIfBCt7gOSs= +github.com/goplus/llvm v0.8.5/go.mod h1:PeVK8GgzxwAYCiMiUAJb5wJR6xbhj989tu9oulKLLT4= github.com/goplus/mod v0.17.1 h1:ITovxDcc5zbURV/Wrp3/SBsYLgC1KrxY6pq1zMM2V94= github.com/goplus/mod v0.17.1/go.mod h1:iXEszBKqi38BAyQApBPyQeurLHmQN34YMgC2ZNdap50= github.com/qiniu/x v1.15.1 h1:avE+YQaowp8ZExjylOeSM73rUo3MQKBAYVxh4NJ8dY8= github.com/qiniu/x v1.15.1/go.mod h1:AiovSOCaRijaf3fj+0CBOpR1457pn24b0Vdb1JpwhII= -golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= diff --git a/internal/build/build.go b/internal/build/build.go index ec741f60..e0051ed9 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -38,6 +38,7 @@ import ( "golang.org/x/tools/go/ssa" "github.com/goplus/llgo/cl" + "github.com/goplus/llgo/internal/cabi" "github.com/goplus/llgo/internal/clang" "github.com/goplus/llgo/internal/crosscompile" "github.com/goplus/llgo/internal/env" @@ -63,6 +64,8 @@ const ( ModeGen ) +type AbiMode = cabi.Mode + const ( debugBuild = packages.DebugPackagesLoad ) @@ -76,6 +79,7 @@ type Config struct { OutFile string // only valid for ModeBuild when len(pkgs) == 1 RunArgs []string // only valid for ModeRun Mode Mode + AbiMode AbiMode GenExpect bool // only valid for ModeCmpTest Verbose bool GenLL bool // generate pkg .ll files @@ -108,6 +112,7 @@ func NewDefaultConf(mode Mode) *Config { Goarch: goarch, BinPath: bin, Mode: mode, + AbiMode: cabi.ModeAllFunc, AppExt: DefaultAppExt(goos), } return conf @@ -170,6 +175,9 @@ func Do(args []string, conf *Config) ([]Package, error) { if conf.Tags != "" { tags += "," + conf.Tags } + if len(export.BuildTags) > 0 { + tags += "," + strings.Join(export.BuildTags, ",") + } cfg := &packages.Config{ Mode: loadSyntax | packages.NeedDeps | packages.NeedModule | packages.NeedExportFile, BuildFlags: []string{"-tags=" + tags}, @@ -269,12 +277,14 @@ func Do(args []string, conf *Config) ([]Package, error) { output := conf.OutFile != "" ctx := &context{env: env, conf: cfg, progSSA: progSSA, prog: prog, dedup: dedup, patches: patches, built: make(map[string]none), initial: initial, mode: mode, - output: output, - needRt: make(map[*packages.Package]bool), - needPyInit: make(map[*packages.Package]bool), - buildConf: conf, - crossCompile: export, - isCheckEnable: IsCheckEnable(), + output: output, + needRt: make(map[*packages.Package]bool), + needPyInit: make(map[*packages.Package]bool), + buildConf: conf, + crossCompile: export, + isCheckEnabled: IsCheckEnabled(), + isCheckLinkArgsEnabled: IsCheckLinkArgsEnabled(), + cTransformer: cabi.NewTransformer(prog, conf.AbiMode), } pkgs, err := buildAllPkgs(ctx, initial, verbose) check(err) @@ -364,7 +374,8 @@ type context struct { nLibdir int output bool - isCheckEnable bool + isCheckEnabled bool + isCheckLinkArgsEnabled bool needRt map[*packages.Package]bool needPyInit map[*packages.Package]bool @@ -372,6 +383,8 @@ type context struct { buildConf *Config crossCompile crosscompile.Export + cTransformer *cabi.Transformer + testFail bool } @@ -457,8 +470,10 @@ func buildAllPkgs(ctx *context, initial []*packages.Package, verbose bool) (pkgs ctx.nLibdir++ } } - if err := ctx.compiler().CheckLinkArgs(pkgLinkArgs, isWasmTarget(ctx.buildConf.Goos)); err != nil { - panic(fmt.Sprintf("test link args '%s' failed\n\texpanded to: %v\n\tresolved to: %v\n\terror: %v", param, expdArgs, pkgLinkArgs, err)) + if ctx.isCheckLinkArgsEnabled { + if err := ctx.compiler().CheckLinkArgs(pkgLinkArgs, isWasmTarget(ctx.buildConf.Goos)); err != nil { + panic(fmt.Sprintf("test link args '%s' failed\n\texpanded to: %v\n\tresolved to: %v\n\terror: %v", param, expdArgs, pkgLinkArgs, err)) + } } aPkg.LinkArgs = append(aPkg.LinkArgs, pkgLinkArgs...) } @@ -585,7 +600,19 @@ func linkMainPkg(ctx *context, pkg *packages.Package, pkgs []*aPackage, global l objFiles = append(objFiles, export) } - err = linkObjFiles(ctx, app, objFiles, linkArgs, verbose) + if IsFullRpathEnabled() { + exargs := make([]string, 0, ctx.nLibdir<<1) + // Treat every link-time library search path, specified by the -L parameter, as a runtime search path as well. + // This is to ensure the final executable can locate libraries with a relocatable install_name + // (e.g., "@rpath/libfoo.dylib") at runtime. + for _, arg := range linkArgs { + if strings.HasPrefix(arg, "-L") { + exargs = append(exargs, "-rpath", arg[2:]) + } + } + linkArgs = append(linkArgs, exargs...) + } + err = linkObjFiles(ctx, app, objFiles, linkArgs, verbose) check(err) @@ -720,8 +747,7 @@ call i32 @setvbuf(ptr %stderr_ptr, ptr null, i32 2, %size_t 0) startDefine := ` define weak void @_start() { ; argc = 0 - %argc_val = icmp eq i32 0, 0 - %argc = zext i1 %argc_val to i32 + %argc = add i32 0, 0 ; argv = null %argv = inttoptr i64 0 to i8** call i32 @main(i32 %argc, i8** %argv) @@ -806,6 +832,9 @@ func buildPkg(ctx *context, aPkg *aPackage, verbose bool) error { cl.SetDebug(0) } check(err) + + ctx.cTransformer.TransformModule(ret.Path(), ret.Module()) + aPkg.LPkg = ret cgoLLFiles, cgoLdflags, err := buildCgo(ctx, aPkg, aPkg.Package.Syntax, externs, verbose) if err != nil { @@ -845,7 +874,7 @@ func exportObject(ctx *context, pkgPath string, exportFile string, data []byte) if err != nil { return exportFile, err } - if ctx.isCheckEnable { + if ctx.isCheckEnabled { if msg, err := llcCheck(ctx.env, f.Name()); err != nil { fmt.Fprintf(os.Stderr, "==> lcc %v: %v\n%v\n", pkgPath, f.Name(), msg) } @@ -989,6 +1018,8 @@ const llgoCheck = "LLGO_CHECK" const llgoWasmRuntime = "LLGO_WASM_RUNTIME" const llgoWasiThreads = "LLGO_WASI_THREADS" const llgoStdioNobuf = "LLGO_STDIO_NOBUF" +const llgoCheckLinkArgs = "LLGO_CHECK_LINKARGS" +const llgoFullRpath = "LLGO_FULL_RPATH" const defaultWasmRuntime = "wasmtime" @@ -1028,7 +1059,7 @@ func IsOptimizeEnabled() bool { return isEnvOn(llgoOptimize, true) } -func IsCheckEnable() bool { +func IsCheckEnabled() bool { return isEnvOn(llgoCheck, false) } @@ -1036,6 +1067,14 @@ func IsWasiThreadsEnabled() bool { return isEnvOn(llgoWasiThreads, true) } +func IsCheckLinkArgsEnabled() bool { + return isEnvOn(llgoCheckLinkArgs, false) +} + +func IsFullRpathEnabled() bool { + return isEnvOn(llgoFullRpath, true) +} + func WasmRuntime() string { return defaultEnv(llgoWasmRuntime, defaultWasmRuntime) } diff --git a/internal/buildenv/dev.go b/internal/buildenv/dev.go new file mode 100644 index 00000000..e086b6d2 --- /dev/null +++ b/internal/buildenv/dev.go @@ -0,0 +1,6 @@ +//go:build dev +// +build dev + +package buildenv + +const Dev = true diff --git a/internal/buildenv/nodev.go b/internal/buildenv/nodev.go new file mode 100644 index 00000000..5f32ab0d --- /dev/null +++ b/internal/buildenv/nodev.go @@ -0,0 +1,6 @@ +//go:build !dev +// +build !dev + +package buildenv + +const Dev = false diff --git a/internal/cabi/_testdata/arch.sh b/internal/cabi/_testdata/arch.sh new file mode 100755 index 00000000..64d753af --- /dev/null +++ b/internal/cabi/_testdata/arch.sh @@ -0,0 +1,13 @@ +#!/bin/sh +mkdir -p arch/amd64 +mkdir -p arch/arm64 +mkdir -p arch/i386 +mkdir -p arch/armv6 +mkdir -p arch/riscv64 +mkdir -p arch/wasm32 +(cd arch/amd64 && clang -target amd64-unknown-linux-gnu -S -emit-llvm ../../wrap/*.c) +(cd arch/arm64 && clang -target aarch64-linux-gnu -S -emit-llvm ../../wrap/*.c) +(cd arch/i386 && clang -target i386-unknown-linux-gnu -S -emit-llvm ../../wrap/*.c) +(cd arch/armv6 && clang -target armv6l-unknown-linux-gnueabihf -S -emit-llvm ../../wrap/*.c) +(cd arch/riscv64 && clang -target riscv64-unknown-elf -S -emit-llvm ../../wrap/*.c) +(cd arch/wasm32 && clang -target wasm32-unknown-emscripten -S -emit-llvm ../../wrap/*.c) \ No newline at end of file diff --git a/internal/cabi/_testdata/arch/amd64/array_float32.ll b/internal/cabi/_testdata/arch/amd64/array_float32.ll new file mode 100644 index 00000000..ed92f825 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_float32.ll @@ -0,0 +1,244 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x float]* %4 to float* + store float %0, float* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x float]* %8 to float* + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local <2 x float> @demo2(<2 x float> %0) #2 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x float]* %4 to <2 x float>* + store <2 x float> %0, <2 x float>* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x float]* %8 to <2 x float>* + %10 = load <2 x float>, <2 x float>* %9, align 4 + ret <2 x float> %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { <2 x float>, float } @demo3(<2 x float> %0, float %1) #2 { + %3 = alloca %struct.array3, align 4 + %4 = alloca %struct.array3, align 4 + %5 = alloca { <2 x float>, float }, align 4 + %6 = alloca { <2 x float>, float }, align 8 + %7 = getelementptr inbounds { <2 x float>, float }, { <2 x float>, float }* %5, i32 0, i32 0 + store <2 x float> %0, <2 x float>* %7, align 4 + %8 = getelementptr inbounds { <2 x float>, float }, { <2 x float>, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.array3* %4 to i8* + %10 = bitcast { <2 x float>, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.array3* %3 to i8* + %12 = bitcast %struct.array3* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + %14 = bitcast { <2 x float>, float }* %6 to i8* + %15 = bitcast [3 x float]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 4 %15, i64 12, i1 false) + %16 = load { <2 x float>, float }, { <2 x float>, float }* %6, align 8 + ret { <2 x float>, float } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { <2 x float>, <2 x float> } @demo4(<2 x float> %0, <2 x float> %1) #2 { + %3 = alloca %struct.array4, align 4 + %4 = alloca %struct.array4, align 4 + %5 = bitcast %struct.array4* %4 to { <2 x float>, <2 x float> }* + %6 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %5, i32 0, i32 0 + store <2 x float> %0, <2 x float>* %6, align 4 + %7 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.array4* %3 to i8* + %9 = bitcast %struct.array4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %11 = bitcast [4 x float]* %10 to { <2 x float>, <2 x float> }* + %12 = load { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %11, align 4 + ret { <2 x float>, <2 x float> } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } +attributes #2 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/array_float64.ll b/internal/cabi/_testdata/arch/amd64/array_float64.ll new file mode 100644 index 00000000..c0e54fcc --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_float64.ll @@ -0,0 +1,219 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local double @demo1(double %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x double]* %4 to double* + store double %0, double* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x double]* %8 to double* + %10 = load double, double* %9, align 8 + ret double %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, double } @demo2(double %0, double %1) #0 { + %3 = alloca %struct.array2, align 8 + %4 = alloca %struct.array2, align 8 + %5 = bitcast %struct.array2* %4 to { double, double }* + %6 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %11 = bitcast [2 x double]* %10 to { double, double }* + %12 = load { double, double }, { double, double }* %11, align 8 + ret { double, double } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef byval(%struct.array3) align 8 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef byval(%struct.array4) align 8 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/array_int16.ll b/internal/cabi/_testdata/arch/amd64/array_int16.ll new file mode 100644 index 00000000..200398f5 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_int16.ll @@ -0,0 +1,297 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo1(i16 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i16]* %4 to i16* + store i16 %0, i16* %5, align 2 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 2, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i16]* %8 to i16* + %10 = load i16, i16* %9, align 2 + ret i16 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i16]* %4 to i32* + store i32 %0, i32* %5, align 2 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i16]* %8 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo3(i48 %0) #0 { + %2 = alloca %struct.array3, align 2 + %3 = alloca %struct.array3, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i48 %0, i48* %4, align 8 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i48* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 6, i1 false) + %14 = load i48, i48* %5, align 8 + ret i48 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 2 + %3 = alloca %struct.array4, align 2 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to i64* + store i64 %0, i64* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to i64* + %10 = load i64, i64* %9, align 2 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo5(i64 %0, i16 %1) #0 { + %3 = alloca %struct.array5, align 2 + %4 = alloca %struct.array5, align 2 + %5 = alloca { i64, i16 }, align 2 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 2 + %9 = bitcast %struct.array5* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.array5* %3 to i8* + %12 = bitcast %struct.array5* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + %14 = bitcast { i64, i16 }* %6 to i8* + %15 = bitcast [5 x i16]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 2 %15, i64 10, i1 false) + %16 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo6(i64 %0, i32 %1) #0 { + %3 = alloca %struct.array6, align 2 + %4 = alloca %struct.array6, align 2 + %5 = alloca { i64, i32 }, align 2 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 2 + %9 = bitcast %struct.array6* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 12, i1 false) + %11 = bitcast %struct.array6* %3 to i8* + %12 = bitcast %struct.array6* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 12, i1 false) + %13 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + %14 = bitcast { i64, i32 }* %6 to i8* + %15 = bitcast [6 x i16]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 2 %15, i64 12, i1 false) + %16 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i48 } @demo7(i64 %0, i48 %1) #0 { + %3 = alloca %struct.array7, align 2 + %4 = alloca %struct.array7, align 2 + %5 = alloca { i64, i48 }, align 2 + %6 = alloca { i64, i48 }, align 8 + %7 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 1 + store i48 %1, i48* %8, align 2 + %9 = bitcast %struct.array7* %4 to i8* + %10 = bitcast { i64, i48 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 14, i1 false) + %11 = bitcast %struct.array7* %3 to i8* + %12 = bitcast %struct.array7* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 14, i1 false) + %13 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + %14 = bitcast { i64, i48 }* %6 to i8* + %15 = bitcast [7 x i16]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 2 %15, i64 14, i1 false) + %16 = load { i64, i48 }, { i64, i48 }* %6, align 8 + ret { i64, i48 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo8(i64 %0, i64 %1) #0 { + %3 = alloca %struct.array8, align 2 + %4 = alloca %struct.array8, align 2 + %5 = bitcast %struct.array8* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 2 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 2 + %8 = bitcast %struct.array8* %3 to i8* + %9 = bitcast %struct.array8* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %11 = bitcast [8 x i16]* %10 to { i64, i64 }* + %12 = load { i64, i64 }, { i64, i64 }* %11, align 2 + ret { i64, i64 } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/array_int32.ll b/internal/cabi/_testdata/arch/amd64/array_int32.ll new file mode 100644 index 00000000..5261accf --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_int32.ll @@ -0,0 +1,243 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i32]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i32]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i32]* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i32]* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo3(i64 %0, i32 %1) #0 { + %3 = alloca %struct.array3, align 4 + %4 = alloca %struct.array3, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.array3* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.array3* %3 to i8* + %12 = bitcast %struct.array3* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + %14 = bitcast { i64, i32 }* %6 to i8* + %15 = bitcast [3 x i32]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 4 %15, i64 12, i1 false) + %16 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo4(i64 %0, i64 %1) #0 { + %3 = alloca %struct.array4, align 4 + %4 = alloca %struct.array4, align 4 + %5 = bitcast %struct.array4* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.array4* %3 to i8* + %9 = bitcast %struct.array4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %11 = bitcast [4 x i32]* %10 to { i64, i64 }* + %12 = load { i64, i64 }, { i64, i64 }* %11, align 4 + ret { i64, i64 } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/array_int64.ll b/internal/cabi/_testdata/arch/amd64/array_int64.ll new file mode 100644 index 00000000..b9c55aa2 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_int64.ll @@ -0,0 +1,219 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo2(i64 %0, i64 %1) #0 { + %3 = alloca %struct.array2, align 8 + %4 = alloca %struct.array2, align 8 + %5 = bitcast %struct.array2* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %11 = bitcast [2 x i64]* %10 to { i64, i64 }* + %12 = load { i64, i64 }, { i64, i64 }* %11, align 8 + ret { i64, i64 } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef byval(%struct.array3) align 8 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef byval(%struct.array4) align 8 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/array_int8.ll b/internal/cabi/_testdata/arch/amd64/array_int8.ll new file mode 100644 index 00000000..85b85e64 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_int8.ll @@ -0,0 +1,411 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8 @demo1(i8 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8]* %4 to i8* + store i8 %0, i8* %5, align 1 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 1, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8]* %8 to i8* + %10 = load i8, i8* %9, align 1 + ret i8 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo2(i16 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8]* %4 to i16* + store i16 %0, i16* %5, align 1 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 2, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8]* %8 to i16* + %10 = load i16, i16* %9, align 1 + ret i16 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i24 @demo3(i24 %0) #0 { + %2 = alloca %struct.array3, align 1 + %3 = alloca %struct.array3, align 1 + %4 = alloca i24, align 4 + %5 = alloca i24, align 4 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i24 %0, i24* %4, align 4 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i24* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 4 %8, i64 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i24* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %12, i8* align 1 %13, i64 3, i1 false) + %14 = load i24, i24* %5, align 4 + ret i24 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8]* %4 to i32* + store i32 %0, i32* %5, align 1 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i8]* %8 to i32* + %10 = load i32, i32* %9, align 1 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i40 @demo5(i40 %0) #0 { + %2 = alloca %struct.array5, align 1 + %3 = alloca %struct.array5, align 1 + %4 = alloca i40, align 8 + %5 = alloca i40, align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store i40 %0, i40* %4, align 8 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast i40* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast i40* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 5, i1 false) + %14 = load i40, i40* %5, align 8 + ret i40 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo6(i48 %0) #0 { + %2 = alloca %struct.array6, align 1 + %3 = alloca %struct.array6, align 1 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store i48 %0, i48* %4, align 8 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast i48* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 6, i1 false) + %14 = load i48, i48* %5, align 8 + ret i48 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i56 @demo7(i56 %0) #0 { + %2 = alloca %struct.array7, align 1 + %3 = alloca %struct.array7, align 1 + %4 = alloca i56, align 8 + %5 = alloca i56, align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store i56 %0, i56* %4, align 8 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast i56* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast i56* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 7, i1 false) + %14 = load i56, i56* %5, align 8 + ret i56 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.array8, align 1 + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to i64* + store i64 %0, i64* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to i64* + %10 = load i64, i64* %9, align 1 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo9(i64 %0, i8 %1) #0 { + %3 = alloca %struct.array9, align 1 + %4 = alloca %struct.array9, align 1 + %5 = alloca { i64, i8 }, align 1 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 1 + %9 = bitcast %struct.array9* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 9, i1 false) + %11 = bitcast %struct.array9* %3 to i8* + %12 = bitcast %struct.array9* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 9, i1 false) + %13 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + %14 = bitcast { i64, i8 }* %6 to i8* + %15 = bitcast [9 x i8]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 1 %15, i64 9, i1 false) + %16 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo10(i64 %0, i16 %1) #0 { + %3 = alloca %struct.array10, align 1 + %4 = alloca %struct.array10, align 1 + %5 = alloca { i64, i16 }, align 1 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 1 + %9 = bitcast %struct.array10* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 10, i1 false) + %11 = bitcast %struct.array10* %3 to i8* + %12 = bitcast %struct.array10* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 10, i1 false) + %13 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %14 = bitcast { i64, i16 }* %6 to i8* + %15 = bitcast [10 x i8]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 1 %15, i64 10, i1 false) + %16 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i24 } @demo11(i64 %0, i24 %1) #0 { + %3 = alloca %struct.array11, align 1 + %4 = alloca %struct.array11, align 1 + %5 = alloca { i64, i24 }, align 1 + %6 = alloca { i64, i24 }, align 8 + %7 = getelementptr inbounds { i64, i24 }, { i64, i24 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i24 }, { i64, i24 }* %5, i32 0, i32 1 + store i24 %1, i24* %8, align 1 + %9 = bitcast %struct.array11* %4 to i8* + %10 = bitcast { i64, i24 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 11, i1 false) + %11 = bitcast %struct.array11* %3 to i8* + %12 = bitcast %struct.array11* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 11, i1 false) + %13 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + %14 = bitcast { i64, i24 }* %6 to i8* + %15 = bitcast [11 x i8]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 1 %15, i64 11, i1 false) + %16 = load { i64, i24 }, { i64, i24 }* %6, align 8 + ret { i64, i24 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo12(i64 %0, i32 %1) #0 { + %3 = alloca %struct.array12, align 1 + %4 = alloca %struct.array12, align 1 + %5 = alloca { i64, i32 }, align 1 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 1 + %9 = bitcast %struct.array12* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 12, i1 false) + %11 = bitcast %struct.array12* %3 to i8* + %12 = bitcast %struct.array12* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 12, i1 false) + %13 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + %14 = bitcast { i64, i32 }* %6 to i8* + %15 = bitcast [12 x i8]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 1 %15, i64 12, i1 false) + %16 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i40 } @demo13(i64 %0, i40 %1) #0 { + %3 = alloca %struct.array13, align 1 + %4 = alloca %struct.array13, align 1 + %5 = alloca { i64, i40 }, align 1 + %6 = alloca { i64, i40 }, align 8 + %7 = getelementptr inbounds { i64, i40 }, { i64, i40 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i40 }, { i64, i40 }* %5, i32 0, i32 1 + store i40 %1, i40* %8, align 1 + %9 = bitcast %struct.array13* %4 to i8* + %10 = bitcast { i64, i40 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 13, i1 false) + %11 = bitcast %struct.array13* %3 to i8* + %12 = bitcast %struct.array13* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 13, i1 false) + %13 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + %14 = bitcast { i64, i40 }* %6 to i8* + %15 = bitcast [13 x i8]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 1 %15, i64 13, i1 false) + %16 = load { i64, i40 }, { i64, i40 }* %6, align 8 + ret { i64, i40 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i48 } @demo14(i64 %0, i48 %1) #0 { + %3 = alloca %struct.array14, align 1 + %4 = alloca %struct.array14, align 1 + %5 = alloca { i64, i48 }, align 1 + %6 = alloca { i64, i48 }, align 8 + %7 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 1 + store i48 %1, i48* %8, align 1 + %9 = bitcast %struct.array14* %4 to i8* + %10 = bitcast { i64, i48 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 14, i1 false) + %11 = bitcast %struct.array14* %3 to i8* + %12 = bitcast %struct.array14* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 14, i1 false) + %13 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + %14 = bitcast { i64, i48 }* %6 to i8* + %15 = bitcast [14 x i8]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 1 %15, i64 14, i1 false) + %16 = load { i64, i48 }, { i64, i48 }* %6, align 8 + ret { i64, i48 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i56 } @demo15(i64 %0, i56 %1) #0 { + %3 = alloca %struct.array15, align 1 + %4 = alloca %struct.array15, align 1 + %5 = alloca { i64, i56 }, align 1 + %6 = alloca { i64, i56 }, align 8 + %7 = getelementptr inbounds { i64, i56 }, { i64, i56 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i56 }, { i64, i56 }* %5, i32 0, i32 1 + store i56 %1, i56* %8, align 1 + %9 = bitcast %struct.array15* %4 to i8* + %10 = bitcast { i64, i56 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 15, i1 false) + %11 = bitcast %struct.array15* %3 to i8* + %12 = bitcast %struct.array15* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 15, i1 false) + %13 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + %14 = bitcast { i64, i56 }* %6 to i8* + %15 = bitcast [15 x i8]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 1 %15, i64 15, i1 false) + %16 = load { i64, i56 }, { i64, i56 }* %6, align 8 + ret { i64, i56 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo16(i64 %0, i64 %1) #0 { + %3 = alloca %struct.array16, align 1 + %4 = alloca %struct.array16, align 1 + %5 = bitcast %struct.array16* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 1 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 1 + %8 = bitcast %struct.array16* %3 to i8* + %9 = bitcast %struct.array16* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %11 = bitcast [16 x i8]* %10 to { i64, i64 }* + %12 = load { i64, i64 }, { i64, i64 }* %11, align 1 + ret { i64, i64 } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/array_pointer.ll b/internal/cabi/_testdata/arch/amd64/array_pointer.ll new file mode 100644 index 00000000..6be43ba6 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_pointer.ll @@ -0,0 +1,219 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8* @demo1(i8* %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i8** + store i8* %0, i8** %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i8** + %10 = load i8*, i8** %9, align 8 + ret i8* %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, i8* } @demo2(i8* %0, i8* %1) #0 { + %3 = alloca %struct.array2, align 8 + %4 = alloca %struct.array2, align 8 + %5 = bitcast %struct.array2* %4 to { i8*, i8* }* + %6 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %11 = bitcast [2 x i8*]* %10 to { i8*, i8* }* + %12 = load { i8*, i8* }, { i8*, i8* }* %11, align 8 + ret { i8*, i8* } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef byval(%struct.array3) align 8 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef byval(%struct.array4) align 8 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/array_uintptr.ll b/internal/cabi/_testdata/arch/amd64/array_uintptr.ll new file mode 100644 index 00000000..506349c2 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/array_uintptr.ll @@ -0,0 +1,219 @@ +; ModuleID = '../../wrap/array_uintptr.c' +source_filename = "../../wrap/array_uintptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8* @demo1(i8* %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i8** + store i8* %0, i8** %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i8** + %10 = load i8*, i8** %9, align 8 + ret i8* %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, i8* } @demo2(i8* %0, i8* %1) #0 { + %3 = alloca %struct.array2, align 8 + %4 = alloca %struct.array2, align 8 + %5 = bitcast %struct.array2* %4 to { i8*, i8* }* + %6 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.array2* %3 to i8* + %9 = bitcast %struct.array2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %11 = bitcast [2 x i8*]* %10 to { i8*, i8* }* + %12 = load { i8*, i8* }, { i8*, i8* }* %11, align 8 + ret { i8*, i8* } %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef byval(%struct.array3) align 8 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef byval(%struct.array4) align 8 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/basic.ll b/internal/cabi/_testdata/arch/amd64/basic.ll new file mode 100644 index 00000000..4d42e66f --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/basic.ll @@ -0,0 +1,72 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local signext i8 @basic_int8(i8 noundef signext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { + %2 = alloca i8*, align 8 + store i8* %0, i8** %2, align 8 + %3 = load i8*, i8** %2, align 8 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/composite.ll b/internal/cabi/_testdata/arch/amd64/composite.ll new file mode 100644 index 00000000..696afdfd --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/composite.ll @@ -0,0 +1,175 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo_array10(i32 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %4, i32 0, i32 0 + %6 = bitcast [1 x i32]* %5 to i32* + store i32 %0, i32* %6, align 4 + %7 = bitcast %struct.array10* %2 to i8* + %8 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 4, i1 false) + %9 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %9, i32 0, i32 0 + %11 = bitcast [1 x i32]* %10 to i32* + %12 = load i32, i32* %11, align 4 + ret i32 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_array11(i64 %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.array11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo_point10(i32 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = getelementptr inbounds %struct.point10, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.point10* %2 to i8* + %7 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %8, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_point11(i64 %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_array20(i64 %0) #0 { + %2 = alloca %struct.array20, align 4 + %3 = alloca %struct.array20, align 4 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + %6 = bitcast [2 x i32]* %5 to i64* + store i64 %0, i64* %6, align 4 + %7 = bitcast %struct.array20* %2 to i8* + %8 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 8, i1 false) + %9 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %9, i32 0, i32 0 + %11 = bitcast [2 x i32]* %10 to i64* + %12 = load i64, i64* %11, align 4 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo_array21(i64 %0, i32 %1) #0 { + %3 = alloca %struct.array21, align 4 + %4 = alloca %struct.array21, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.array21* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.array21* %3 to i8* + %12 = bitcast %struct.array21* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.array21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_point20(i64 %0) #0 { + %2 = alloca %struct.point20, align 4 + %3 = alloca %struct.point20, align 4 + %4 = getelementptr inbounds %struct.point20, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo_point21(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point21, align 4 + %4 = alloca %struct.point21, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point21* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point21* %3 to i8* + %12 = bitcast %struct.point21* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/demo.ll b/internal/cabi/_testdata/arch/amd64/demo.ll new file mode 100644 index 00000000..c731716b --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/demo.ll @@ -0,0 +1,939 @@ +; ModuleID = '../../wrap/demo.c' +source_filename = "../../wrap/demo.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point = type { i32, i32 } +%struct.point1 = type { i32, i32, i32 } +%struct.point64 = type { i64, i64 } +%struct.struct32 = type { i32 } +%struct.point2 = type { i8, i32, i32 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i32 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i32 } +%struct.point7 = type { i8, i8, i8, i8, i8, i32, i8 } +%struct.data1 = type { i8, i64 } +%struct.data2 = type { i32, i64 } +%struct.data3 = type { i64, i8 } +%struct.fdata1 = type { float } +%struct.ddata1 = type { double } +%struct.ddata2 = type { double, double } +%struct.ddata3 = type { double, double, double } +%struct.fdata2i = type { float, i32 } +%struct.fdata2 = type { float, float } +%struct.fdata3 = type { float, float, float } +%struct.fdata4 = type { float, float, float, float } +%struct.fdata5 = type { float, float, float, float, float } +%struct.fdata2id = type { i8, i8, double } +%struct.fdata7if = type { [7 x i8], float } +%struct.fdata4if = type { float, i8, float, float } +%struct.array = type { [8 x i32] } + +@.str = private unnamed_addr constant [20 x i8] c"point64: %lld %lld\0A\00", align 1 +@.str.1 = private unnamed_addr constant [14 x i8] c"struct32: %d\0A\00", align 1 +@.str.2 = private unnamed_addr constant [14 x i8] c"point: %d %d\0A\00", align 1 +@.str.3 = private unnamed_addr constant [18 x i8] c"point1: %d %d %d\0A\00", align 1 +@.str.4 = private unnamed_addr constant [18 x i8] c"point2: %d %d %d\0A\00", align 1 +@.str.5 = private unnamed_addr constant [18 x i8] c"point3: %d %d %d\0A\00", align 1 +@.str.6 = private unnamed_addr constant [21 x i8] c"point4: %d %d %d %d\0A\00", align 1 +@.str.7 = private unnamed_addr constant [24 x i8] c"point5: %d %d %d %d %d\0A\00", align 1 +@.str.8 = private unnamed_addr constant [27 x i8] c"point6: %d %d %d %d %d %d\0A\00", align 1 +@.str.9 = private unnamed_addr constant [30 x i8] c"point7: %d %d %d %d %d %d %d\0A\00", align 1 +@.str.10 = private unnamed_addr constant [16 x i8] c"data1: %d %lld\0A\00", align 1 +@.str.11 = private unnamed_addr constant [16 x i8] c"data2: %d %lld\0A\00", align 1 +@.str.12 = private unnamed_addr constant [16 x i8] c"data3: %lld %d\0A\00", align 1 +@.str.13 = private unnamed_addr constant [9 x i8] c"ff1: %f\0A\00", align 1 +@.str.14 = private unnamed_addr constant [9 x i8] c"dd1: %f\0A\00", align 1 +@.str.15 = private unnamed_addr constant [12 x i8] c"dd2: %f %f\0A\00", align 1 +@.str.16 = private unnamed_addr constant [15 x i8] c"dd3: %f %f %f\0A\00", align 1 +@.str.17 = private unnamed_addr constant [13 x i8] c"ff2i: %f %d\0A\00", align 1 +@.str.18 = private unnamed_addr constant [12 x i8] c"ff2: %f %f\0A\00", align 1 +@.str.19 = private unnamed_addr constant [15 x i8] c"ff3: %f %f %f\0A\00", align 1 +@.str.20 = private unnamed_addr constant [18 x i8] c"ff4: %f %f %f %f\0A\00", align 1 +@.str.21 = private unnamed_addr constant [21 x i8] c"ff5: %f %f %f %f %f\0A\00", align 1 +@.str.22 = private unnamed_addr constant [15 x i8] c"ff6: %d %d %f\0A\00", align 1 +@.str.23 = private unnamed_addr constant [17 x i8] c"ff7if: %d %d %f\0A\00", align 1 +@.str.24 = private unnamed_addr constant [20 x i8] c"ff4if: %f %d %f %f\0A\00", align 1 +@.str.25 = private unnamed_addr constant [16 x i8] c"demo: %d %d %d\0A\00", align 1 +@__const.callback.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.26 = private unnamed_addr constant [27 x i8] c"callback1 array: %d %d %d\0A\00", align 1 +@__const.callback1.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback1.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.27 = private unnamed_addr constant [22 x i8] c"callback1 ret: %d,%d\0A\00", align 1 +@.str.28 = private unnamed_addr constant [28 x i8] c"mycallback array: %d %d %d\0A\00", align 1 +@.str.29 = private unnamed_addr constant [22 x i8] c"mycallback pt: %d %d\0A\00", align 1 +@.str.30 = private unnamed_addr constant [26 x i8] c"mycallback pt1: %d %d %d\0A\00", align 1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + %4 = add nsw i32 %3, 100 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + %4 = add nsw i64 %3, 100 + ret i64 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @pt64(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point64, align 8 + %4 = alloca %struct.point64, align 8 + %5 = bitcast %struct.point64* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = getelementptr inbounds %struct.point64, %struct.point64* %4, i32 0, i32 0 + %9 = load i64, i64* %8, align 8 + %10 = getelementptr inbounds %struct.point64, %struct.point64* %4, i32 0, i32 1 + %11 = load i64, i64* %10, align 8 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i64 noundef %9, i64 noundef %11) + %13 = bitcast %struct.point64* %3 to i8* + %14 = bitcast %struct.point64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 8 %14, i64 16, i1 false) + %15 = bitcast %struct.point64* %3 to { i64, i64 }* + %16 = load { i64, i64 }, { i64, i64 }* %15, align 8 + ret { i64, i64 } %16 +} + +declare i32 @printf(i8* noundef, ...) #1 + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo32s(i32 %0) #0 { + %2 = alloca %struct.struct32, align 4 + %3 = alloca %struct.struct32, align 4 + %4 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %5 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 4 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), i32 noundef %6) + %8 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + %11 = add nsw i32 %10, 100 + store i32 %11, i32* %8, align 4 + %12 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %13 = load i32, i32* %12, align 4 + ret i32 %13 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @pt(i64 %0) #0 { + %2 = alloca %struct.point, align 4 + %3 = alloca %struct.point, align 4 + %4 = bitcast %struct.point* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 4 + %7 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 1 + %8 = load i32, i32* %7, align 4 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i64 0, i64 0), i32 noundef %6, i32 noundef %8) + %10 = bitcast %struct.point* %2 to i8* + %11 = bitcast %struct.point* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 8, i1 false) + %12 = bitcast %struct.point* %2 to i64* + %13 = load i64, i64* %12, align 4 + ret i64 %13 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @pt1(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point1, align 4 + %4 = alloca %struct.point1, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point1* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 0 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 1 + %14 = load i32, i32* %13, align 4 + %15 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 2 + %16 = load i32, i32* %15, align 4 + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i32 noundef %12, i32 noundef %14, i32 noundef %16) + %18 = bitcast %struct.point1* %3 to i8* + %19 = bitcast %struct.point1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 12, i1 false) + %20 = bitcast { i64, i32 }* %6 to i8* + %21 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %20, i8* align 4 %21, i64 12, i1 false) + %22 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %22 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @pt2(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = alloca %struct.point2, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point2* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.point2, %struct.point2* %4, i32 0, i32 0 + %12 = load i8, i8* %11, align 4 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point2, %struct.point2* %4, i32 0, i32 1 + %15 = load i32, i32* %14, align 4 + %16 = getelementptr inbounds %struct.point2, %struct.point2* %4, i32 0, i32 2 + %17 = load i32, i32* %16, align 4 + %18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i64 0, i64 0), i32 noundef %13, i32 noundef %15, i32 noundef %17) + %19 = bitcast %struct.point2* %3 to i8* + %20 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %19, i8* align 4 %20, i64 12, i1 false) + %21 = bitcast { i64, i32 }* %6 to i8* + %22 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %21, i8* align 4 %22, i64 12, i1 false) + %23 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %23 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i24 @pt3(i24 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i24, align 4 + %5 = alloca i24, align 4 + store i24 %0, i24* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i24* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 4 %7, i64 3, i1 false) + %8 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 1 + %16 = sext i8 %15 to i32 + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 noundef %10, i32 noundef %13, i32 noundef %16) + %18 = bitcast %struct.point3* %2 to i8* + %19 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %18, i8* align 1 %19, i64 3, i1 false) + %20 = bitcast i24* %5 to i8* + %21 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %20, i8* align 1 %21, i64 3, i1 false) + %22 = load i24, i24* %5, align 4 + ret i24 %22 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @pt4(i64 %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 3 + %15 = load i32, i32* %14, align 4 + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i64 0, i64 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %15) + %17 = bitcast %struct.point4* %2 to i8* + %18 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %17, i8* align 4 %18, i64 8, i1 false) + %19 = bitcast %struct.point4* %2 to i64* + %20 = load i64, i64* %19, align 4 + ret i64 %20 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i40 @pt5(i40 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i40, align 8 + %5 = alloca i40, align 8 + store i40 %0, i40* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i40* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 1 + %16 = sext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 3 + %18 = load i8, i8* %17, align 1 + %19 = sext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 4 + %21 = load i8, i8* %20, align 1 + %22 = sext i8 %21 to i32 + %23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0), i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %22) + %24 = bitcast %struct.point5* %2 to i8* + %25 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %24, i8* align 1 %25, i64 5, i1 false) + %26 = bitcast i40* %5 to i8* + %27 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 1 %27, i64 5, i1 false) + %28 = load i40, i40* %5, align 8 + ret i40 %28 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @pt6(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point6, align 4 + %4 = alloca %struct.point6, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point6* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.point6, %struct.point6* %4, i32 0, i32 0 + %12 = load i8, i8* %11, align 4 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point6, %struct.point6* %4, i32 0, i32 1 + %15 = load i8, i8* %14, align 1 + %16 = sext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point6, %struct.point6* %4, i32 0, i32 2 + %18 = load i8, i8* %17, align 2 + %19 = sext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point6, %struct.point6* %4, i32 0, i32 3 + %21 = load i8, i8* %20, align 1 + %22 = sext i8 %21 to i32 + %23 = getelementptr inbounds %struct.point6, %struct.point6* %4, i32 0, i32 4 + %24 = load i8, i8* %23, align 4 + %25 = sext i8 %24 to i32 + %26 = getelementptr inbounds %struct.point6, %struct.point6* %4, i32 0, i32 5 + %27 = load i32, i32* %26, align 4 + %28 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i64 0, i64 0), i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %22, i32 noundef %25, i32 noundef %27) + %29 = bitcast %struct.point6* %3 to i8* + %30 = bitcast %struct.point6* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %29, i8* align 4 %30, i64 12, i1 false) + %31 = bitcast { i64, i32 }* %6 to i8* + %32 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %31, i8* align 4 %32, i64 12, i1 false) + %33 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %33 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @pt7(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point7, align 4 + %4 = alloca %struct.point7, align 4 + %5 = bitcast %struct.point7* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = getelementptr inbounds %struct.point7, %struct.point7* %4, i32 0, i32 0 + %9 = load i8, i8* %8, align 4 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point7, %struct.point7* %4, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point7, %struct.point7* %4, i32 0, i32 2 + %15 = load i8, i8* %14, align 2 + %16 = sext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point7, %struct.point7* %4, i32 0, i32 3 + %18 = load i8, i8* %17, align 1 + %19 = sext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point7, %struct.point7* %4, i32 0, i32 4 + %21 = load i8, i8* %20, align 4 + %22 = sext i8 %21 to i32 + %23 = getelementptr inbounds %struct.point7, %struct.point7* %4, i32 0, i32 5 + %24 = load i32, i32* %23, align 4 + %25 = getelementptr inbounds %struct.point7, %struct.point7* %4, i32 0, i32 6 + %26 = load i8, i8* %25, align 4 + %27 = sext i8 %26 to i32 + %28 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i64 0, i64 0), i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %22, i32 noundef %24, i32 noundef %27) + %29 = bitcast %struct.point7* %3 to i8* + %30 = bitcast %struct.point7* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %29, i8* align 4 %30, i64 16, i1 false) + %31 = bitcast %struct.point7* %3 to { i64, i64 }* + %32 = load { i64, i64 }, { i64, i64 }* %31, align 4 + ret { i64, i64 } %32 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8, i64 } @fn1(i8 %0, i64 %1) #0 { + %3 = alloca %struct.data1, align 8 + %4 = alloca %struct.data1, align 8 + %5 = bitcast %struct.data1* %4 to { i8, i64 }* + %6 = getelementptr inbounds { i8, i64 }, { i8, i64 }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 8 + %7 = getelementptr inbounds { i8, i64 }, { i8, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = getelementptr inbounds %struct.data1, %struct.data1* %4, i32 0, i32 0 + %9 = load i8, i8* %8, align 8 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.data1, %struct.data1* %4, i32 0, i32 1 + %12 = load i64, i64* %11, align 8 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i64 0, i64 0), i32 noundef %10, i64 noundef %12) + %14 = bitcast %struct.data1* %3 to i8* + %15 = bitcast %struct.data1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 8 %15, i64 16, i1 false) + %16 = bitcast %struct.data1* %3 to { i8, i64 }* + %17 = load { i8, i64 }, { i8, i64 }* %16, align 8 + ret { i8, i64 } %17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i32, i64 } @fn2(i32 %0, i64 %1) #0 { + %3 = alloca %struct.data2, align 8 + %4 = alloca %struct.data2, align 8 + %5 = bitcast %struct.data2* %4 to { i32, i64 }* + %6 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 8 + %7 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = getelementptr inbounds %struct.data2, %struct.data2* %4, i32 0, i32 0 + %9 = load i32, i32* %8, align 8 + %10 = getelementptr inbounds %struct.data2, %struct.data2* %4, i32 0, i32 1 + %11 = load i64, i64* %10, align 8 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), i32 noundef %9, i64 noundef %11) + %13 = bitcast %struct.data2* %3 to i8* + %14 = bitcast %struct.data2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 8 %14, i64 16, i1 false) + %15 = bitcast %struct.data2* %3 to { i32, i64 }* + %16 = load { i32, i64 }, { i32, i64 }* %15, align 8 + ret { i32, i64 } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @fn3(i64 %0, i8 %1) #0 { + %3 = alloca %struct.data3, align 8 + %4 = alloca %struct.data3, align 8 + %5 = bitcast %struct.data3* %4 to { i64, i8 }* + %6 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 8 + %8 = getelementptr inbounds %struct.data3, %struct.data3* %4, i32 0, i32 0 + %9 = load i64, i64* %8, align 8 + %10 = getelementptr inbounds %struct.data3, %struct.data3* %4, i32 0, i32 1 + %11 = load i8, i8* %10, align 8 + %12 = sext i8 %11 to i32 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0), i64 noundef %9, i32 noundef %12) + %14 = bitcast %struct.data3* %3 to i8* + %15 = bitcast %struct.data3* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 8 %15, i64 16, i1 false) + %16 = bitcast %struct.data3* %3 to { i64, i8 }* + %17 = load { i64, i8 }, { i64, i8 }* %16, align 8 + ret { i64, i8 } %17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local float @ff1(float %0) #0 { + %2 = alloca %struct.fdata1, align 4 + %3 = alloca %struct.fdata1, align 4 + %4 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + store float %0, float* %4, align 4 + %5 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0), double noundef %7) + %9 = bitcast %struct.fdata1* %2 to i8* + %10 = bitcast %struct.fdata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %2, i32 0, i32 0 + %12 = load float, float* %11, align 4 + ret float %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local double @dd1(double %0) #0 { + %2 = alloca %struct.ddata1, align 8 + %3 = alloca %struct.ddata1, align 8 + %4 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + store double %0, double* %4, align 8 + %5 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + %6 = load double, double* %5, align 8 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i64 0, i64 0), double noundef %6) + %8 = bitcast %struct.ddata1* %2 to i8* + %9 = bitcast %struct.ddata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 8, i1 false) + %10 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %2, i32 0, i32 0 + %11 = load double, double* %10, align 8 + ret double %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, double } @dd2(double %0, double %1) #0 { + %3 = alloca %struct.ddata2, align 8 + %4 = alloca %struct.ddata2, align 8 + %5 = bitcast %struct.ddata2* %4 to { double, double }* + %6 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %4, i32 0, i32 0 + %9 = load double, double* %8, align 8 + %10 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %4, i32 0, i32 1 + %11 = load double, double* %10, align 8 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0), double noundef %9, double noundef %11) + %13 = bitcast %struct.ddata2* %3 to i8* + %14 = bitcast %struct.ddata2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 8 %14, i64 16, i1 false) + %15 = bitcast %struct.ddata2* %3 to { double, double }* + %16 = load { double, double }, { double, double }* %15, align 8 + ret { double, double } %16 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @dd3(%struct.ddata3* noalias sret(%struct.ddata3) align 8 %0, %struct.ddata3* noundef byval(%struct.ddata3) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 0 + %4 = load double, double* %3, align 8 + %5 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 1 + %6 = load double, double* %5, align 8 + %7 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 2 + %8 = load double, double* %7, align 8 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i64 0, i64 0), double noundef %4, double noundef %6, double noundef %8) + %10 = bitcast %struct.ddata3* %0 to i8* + %11 = bitcast %struct.ddata3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 8 %11, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @ff2i(i64 %0) #0 { + %2 = alloca %struct.fdata2i, align 4 + %3 = alloca %struct.fdata2i, align 4 + %4 = bitcast %struct.fdata2i* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 1 + %9 = load i32, i32* %8, align 4 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0), double noundef %7, i32 noundef %9) + %11 = bitcast %struct.fdata2i* %2 to i8* + %12 = bitcast %struct.fdata2i* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 8, i1 false) + %13 = bitcast %struct.fdata2i* %2 to i64* + %14 = load i64, i64* %13, align 4 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local <2 x float> @ff2(<2 x float> %0) #3 { + %2 = alloca %struct.fdata2, align 4 + %3 = alloca %struct.fdata2, align 4 + %4 = bitcast %struct.fdata2* %3 to <2 x float>* + store <2 x float> %0, <2 x float>* %4, align 4 + %5 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0), double noundef %7, double noundef %10) + %12 = bitcast %struct.fdata2* %2 to i8* + %13 = bitcast %struct.fdata2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %12, i8* align 4 %13, i64 8, i1 false) + %14 = bitcast %struct.fdata2* %2 to <2 x float>* + %15 = load <2 x float>, <2 x float>* %14, align 4 + ret <2 x float> %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { <2 x float>, float } @ff3(<2 x float> %0, float %1) #3 { + %3 = alloca %struct.fdata3, align 4 + %4 = alloca %struct.fdata3, align 4 + %5 = alloca { <2 x float>, float }, align 4 + %6 = alloca { <2 x float>, float }, align 8 + %7 = getelementptr inbounds { <2 x float>, float }, { <2 x float>, float }* %5, i32 0, i32 0 + store <2 x float> %0, <2 x float>* %7, align 4 + %8 = getelementptr inbounds { <2 x float>, float }, { <2 x float>, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.fdata3* %4 to i8* + %10 = bitcast { <2 x float>, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %4, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %4, i32 0, i32 1 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %4, i32 0, i32 2 + %18 = load float, float* %17, align 4 + %19 = fpext float %18 to double + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i64 0, i64 0), double noundef %13, double noundef %16, double noundef %19) + %21 = bitcast %struct.fdata3* %3 to i8* + %22 = bitcast %struct.fdata3* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %21, i8* align 4 %22, i64 12, i1 false) + %23 = bitcast { <2 x float>, float }* %6 to i8* + %24 = bitcast %struct.fdata3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %23, i8* align 4 %24, i64 12, i1 false) + %25 = load { <2 x float>, float }, { <2 x float>, float }* %6, align 8 + ret { <2 x float>, float } %25 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { <2 x float>, <2 x float> } @ff4(<2 x float> %0, <2 x float> %1) #3 { + %3 = alloca %struct.fdata4, align 4 + %4 = alloca %struct.fdata4, align 4 + %5 = bitcast %struct.fdata4* %4 to { <2 x float>, <2 x float> }* + %6 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %5, i32 0, i32 0 + store <2 x float> %0, <2 x float>* %6, align 4 + %7 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %4, i32 0, i32 0 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %4, i32 0, i32 1 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %4, i32 0, i32 2 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %4, i32 0, i32 3 + %18 = load float, float* %17, align 4 + %19 = fpext float %18 to double + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), double noundef %10, double noundef %13, double noundef %16, double noundef %19) + %21 = bitcast %struct.fdata4* %3 to i8* + %22 = bitcast %struct.fdata4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %21, i8* align 4 %22, i64 16, i1 false) + %23 = bitcast %struct.fdata4* %3 to { <2 x float>, <2 x float> }* + %24 = load { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %23, align 4 + ret { <2 x float>, <2 x float> } %24 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff5(%struct.fdata5* noalias sret(%struct.fdata5) align 4 %0, %struct.fdata5* noundef byval(%struct.fdata5) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 0 + %4 = load float, float* %3, align 8 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 1 + %7 = load float, float* %6, align 4 + %8 = fpext float %7 to double + %9 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 2 + %10 = load float, float* %9, align 8 + %11 = fpext float %10 to double + %12 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 3 + %13 = load float, float* %12, align 4 + %14 = fpext float %13 to double + %15 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 4 + %16 = load float, float* %15, align 8 + %17 = fpext float %16 to double + %18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0), double noundef %5, double noundef %8, double noundef %11, double noundef %14, double noundef %17) + %19 = bitcast %struct.fdata5* %0 to i8* + %20 = bitcast %struct.fdata5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %19, i8* align 8 %20, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, double } @ff2id(i64 %0, double %1) #0 { + %3 = alloca %struct.fdata2id, align 8 + %4 = alloca %struct.fdata2id, align 8 + %5 = bitcast %struct.fdata2id* %4 to { i64, double }* + %6 = getelementptr inbounds { i64, double }, { i64, double }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, double }, { i64, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %4, i32 0, i32 0 + %9 = load i8, i8* %8, align 8 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %4, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %4, i32 0, i32 2 + %15 = load double, double* %14, align 8 + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0), i32 noundef %10, i32 noundef %13, double noundef %15) + %17 = bitcast %struct.fdata2id* %3 to i8* + %18 = bitcast %struct.fdata2id* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %17, i8* align 8 %18, i64 16, i1 false) + %19 = bitcast %struct.fdata2id* %3 to { i64, double }* + %20 = load { i64, double }, { i64, double }* %19, align 8 + ret { i64, double } %20 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @ff7if(i64 %0, float %1) #0 { + %3 = alloca %struct.fdata7if, align 4 + %4 = alloca %struct.fdata7if, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.fdata7if* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %4, i32 0, i32 0 + %12 = getelementptr inbounds [7 x i8], [7 x i8]* %11, i64 0, i64 0 + %13 = load i8, i8* %12, align 4 + %14 = sext i8 %13 to i32 + %15 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %4, i32 0, i32 0 + %16 = getelementptr inbounds [7 x i8], [7 x i8]* %15, i64 0, i64 1 + %17 = load i8, i8* %16, align 1 + %18 = sext i8 %17 to i32 + %19 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %4, i32 0, i32 1 + %20 = load float, float* %19, align 4 + %21 = fpext float %20 to double + %22 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i64 0, i64 0), i32 noundef %14, i32 noundef %18, double noundef %21) + %23 = bitcast %struct.fdata7if* %3 to i8* + %24 = bitcast %struct.fdata7if* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %23, i8* align 4 %24, i64 12, i1 false) + %25 = bitcast { i64, float }* %6 to i8* + %26 = bitcast %struct.fdata7if* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %25, i8* align 4 %26, i64 12, i1 false) + %27 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %27 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @ff4if(i64 %0, <2 x float> %1) #3 { + %3 = alloca %struct.fdata4if, align 4 + %4 = alloca %struct.fdata4if, align 4 + %5 = bitcast %struct.fdata4if* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %4, i32 0, i32 0 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %4, i32 0, i32 1 + %12 = load i8, i8* %11, align 4 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %4, i32 0, i32 2 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %4, i32 0, i32 3 + %18 = load float, float* %17, align 4 + %19 = fpext float %18 to double + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i64 0, i64 0), double noundef %10, i32 noundef %13, double noundef %16, double noundef %19) + %21 = bitcast %struct.fdata4if* %3 to i8* + %22 = bitcast %struct.fdata4if* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %21, i8* align 4 %22, i64 16, i1 false) + %23 = bitcast %struct.fdata4if* %3 to { i64, <2 x float> }* + %24 = load { i64, <2 x float> }, { i64, <2 x float> }* %23, align 4 + ret { i64, <2 x float> } %24 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo(%struct.array* noalias sret(%struct.array) align 4 %0, %struct.array* noundef byval(%struct.array) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %4 = getelementptr inbounds [8 x i32], [8 x i32]* %3, i64 0, i64 0 + %5 = load i32, i32* %4, align 8 + %6 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %7 = getelementptr inbounds [8 x i32], [8 x i32]* %6, i64 0, i64 1 + %8 = load i32, i32* %7, align 4 + %9 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %10 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 2 + %11 = load i32, i32* %10, align 8 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.25, i64 0, i64 0), i32 noundef %5, i32 noundef %8, i32 noundef %11) + %13 = bitcast %struct.array* %0 to i8* + %14 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %13, i8* align 8 %14, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array* noalias sret(%struct.array) align 4 %0, i32 noundef %1) #0 { + %3 = alloca i32, align 4 + %4 = alloca i32, align 4 + store i32 %1, i32* %3, align 4 + store i32 0, i32* %4, align 4 + br label %5 + +5: ; preds = %16, %2 + %6 = load i32, i32* %4, align 4 + %7 = icmp slt i32 %6, 8 + br i1 %7, label %8, label %19 + +8: ; preds = %5 + %9 = load i32, i32* %4, align 4 + %10 = load i32, i32* %3, align 4 + %11 = add nsw i32 %9, %10 + %12 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %13 = load i32, i32* %4, align 4 + %14 = sext i32 %13 to i64 + %15 = getelementptr inbounds [8 x i32], [8 x i32]* %12, i64 0, i64 %14 + store i32 %11, i32* %15, align 4 + br label %16 + +16: ; preds = %8 + %17 = load i32, i32* %4, align 4 + %18 = add nsw i32 %17, 1 + store i32 %18, i32* %4, align 4 + br label %5, !llvm.loop !6 + +19: ; preds = %5 + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @callback(void (%struct.array*, %struct.array*, i64, i64, i32)* noundef %0, %struct.array* noundef byval(%struct.array) align 8 %1) #0 { + %3 = alloca void (%struct.array*, %struct.array*, i64, i64, i32)*, align 8 + %4 = alloca %struct.array, align 4 + %5 = alloca %struct.point, align 4 + %6 = alloca %struct.point1, align 4 + %7 = alloca %struct.array, align 8 + %8 = alloca { i64, i32 }, align 4 + %9 = alloca %struct.array, align 4 + store void (%struct.array*, %struct.array*, i64, i64, i32)* %0, void (%struct.array*, %struct.array*, i64, i64, i32)** %3, align 8 + call void @demo(%struct.array* sret(%struct.array) align 4 %4, %struct.array* noundef byval(%struct.array) align 8 %1) + %10 = bitcast %struct.point* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 bitcast (%struct.point* @__const.callback.pt to i8*), i64 8, i1 false) + %11 = bitcast %struct.point1* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 bitcast (%struct.point1* @__const.callback.pt1 to i8*), i64 12, i1 false) + %12 = load void (%struct.array*, %struct.array*, i64, i64, i32)*, void (%struct.array*, %struct.array*, i64, i64, i32)** %3, align 8 + %13 = bitcast %struct.point* %5 to i64* + %14 = load i64, i64* %13, align 4 + %15 = bitcast { i64, i32 }* %8 to i8* + %16 = bitcast %struct.point1* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %15, i8* align 4 %16, i64 12, i1 false) + %17 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %8, i32 0, i32 0 + %18 = load i64, i64* %17, align 4 + %19 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %8, i32 0, i32 1 + %20 = load i32, i32* %19, align 4 + call void %12(%struct.array* sret(%struct.array) align 4 %7, %struct.array* noundef byval(%struct.array) align 8 %1, i64 %14, i64 %18, i32 %20) + call void @demo(%struct.array* sret(%struct.array) align 4 %9, %struct.array* noundef byval(%struct.array) align 8 %7) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @callback1(i64 (%struct.array*, i64, i64, i32)* noundef %0, %struct.array* noundef byval(%struct.array) align 8 %1) #0 { + %3 = alloca i64 (%struct.array*, i64, i64, i32)*, align 8 + %4 = alloca %struct.point, align 4 + %5 = alloca %struct.point1, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca { i64, i32 }, align 4 + store i64 (%struct.array*, i64, i64, i32)* %0, i64 (%struct.array*, i64, i64, i32)** %3, align 8 + %8 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %9 = getelementptr inbounds [8 x i32], [8 x i32]* %8, i64 0, i64 0 + %10 = load i32, i32* %9, align 8 + %11 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i64 0, i64 1 + %13 = load i32, i32* %12, align 4 + %14 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %15 = getelementptr inbounds [8 x i32], [8 x i32]* %14, i64 0, i64 7 + %16 = load i32, i32* %15, align 4 + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i64 0, i64 0), i32 noundef %10, i32 noundef %13, i32 noundef %16) + %18 = bitcast %struct.point* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 bitcast (%struct.point* @__const.callback1.pt to i8*), i64 8, i1 false) + %19 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %19, i8* align 4 bitcast (%struct.point1* @__const.callback1.pt1 to i8*), i64 12, i1 false) + %20 = load i64 (%struct.array*, i64, i64, i32)*, i64 (%struct.array*, i64, i64, i32)** %3, align 8 + %21 = bitcast %struct.point* %4 to i64* + %22 = load i64, i64* %21, align 4 + %23 = bitcast { i64, i32 }* %7 to i8* + %24 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %23, i8* align 4 %24, i64 12, i1 false) + %25 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %7, i32 0, i32 0 + %26 = load i64, i64* %25, align 4 + %27 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %7, i32 0, i32 1 + %28 = load i32, i32* %27, align 4 + %29 = call i64 %20(%struct.array* noundef byval(%struct.array) align 8 %1, i64 %22, i64 %26, i32 %28) + %30 = bitcast %struct.point* %6 to i64* + store i64 %29, i64* %30, align 4 + %31 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %32 = load i32, i32* %31, align 4 + %33 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %34 = load i32, i32* %33, align 4 + %35 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i64 0, i64 0), i32 noundef %32, i32 noundef %34) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @mycallback(%struct.array* noundef byval(%struct.array) align 8 %0, i64 %1, i64 %2, i32 %3) #0 { + %5 = alloca %struct.point, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca %struct.point1, align 4 + %8 = alloca { i64, i32 }, align 4 + %9 = bitcast %struct.point* %6 to i64* + store i64 %1, i64* %9, align 4 + %10 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %8, i32 0, i32 0 + store i64 %2, i64* %10, align 4 + %11 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %8, i32 0, i32 1 + store i32 %3, i32* %11, align 4 + %12 = bitcast %struct.point1* %7 to i8* + %13 = bitcast { i64, i32 }* %8 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %12, i8* align 4 %13, i64 12, i1 false) + %14 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %15 = getelementptr inbounds [8 x i32], [8 x i32]* %14, i64 0, i64 0 + %16 = load i32, i32* %15, align 8 + %17 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %18 = getelementptr inbounds [8 x i32], [8 x i32]* %17, i64 0, i64 1 + %19 = load i32, i32* %18, align 4 + %20 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %21 = getelementptr inbounds [8 x i32], [8 x i32]* %20, i64 0, i64 7 + %22 = load i32, i32* %21, align 4 + %23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i64 0, i64 0), i32 noundef %16, i32 noundef %19, i32 noundef %22) + %24 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %25 = load i32, i32* %24, align 4 + %26 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %27 = load i32, i32* %26, align 4 + %28 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i64 0, i64 0), i32 noundef %25, i32 noundef %27) + %29 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 0 + %30 = load i32, i32* %29, align 4 + %31 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 1 + %32 = load i32, i32* %31, align 4 + %33 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 2 + %34 = load i32, i32* %33, align 4 + %35 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.30, i64 0, i64 0), i32 noundef %30, i32 noundef %32, i32 noundef %34) + %36 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + %37 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %38 = load i32, i32* %37, align 4 + %39 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 0 + %40 = load i32, i32* %39, align 4 + %41 = add nsw i32 %38, %40 + store i32 %41, i32* %36, align 4 + %42 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + %43 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %44 = load i32, i32* %43, align 4 + %45 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 1 + %46 = load i32, i32* %45, align 4 + %47 = add nsw i32 %44, %46 + store i32 %47, i32* %42, align 4 + %48 = bitcast %struct.point* %5 to i64* + %49 = load i64, i64* %48, align 4 + ret i64 %49 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { argmemonly nofree nounwind willreturn } +attributes #3 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} +!6 = distinct !{!6, !7} +!7 = !{!"llvm.loop.mustprogress"} diff --git a/internal/cabi/_testdata/arch/amd64/empty.ll b/internal/cabi/_testdata/arch/amd64/empty.ll new file mode 100644 index 00000000..e60ac55a --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/empty.ll @@ -0,0 +1,66 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_float32.ll b/internal/cabi/_testdata/arch/amd64/struct_float32.ll new file mode 100644 index 00000000..0fc0e8ed --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_float32.ll @@ -0,0 +1,238 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local float @demo1(float %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store float %0, float* %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load float, float* %7, align 4 + ret float %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local <2 x float> @demo2(<2 x float> %0) #2 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to <2 x float>* + store <2 x float> %0, <2 x float>* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to <2 x float>* + %8 = load <2 x float>, <2 x float>* %7, align 4 + ret <2 x float> %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { <2 x float>, float } @demo3(<2 x float> %0, float %1) #2 { + %3 = alloca %struct.point3, align 4 + %4 = alloca %struct.point3, align 4 + %5 = alloca { <2 x float>, float }, align 4 + %6 = alloca { <2 x float>, float }, align 8 + %7 = getelementptr inbounds { <2 x float>, float }, { <2 x float>, float }* %5, i32 0, i32 0 + store <2 x float> %0, <2 x float>* %7, align 4 + %8 = getelementptr inbounds { <2 x float>, float }, { <2 x float>, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point3* %4 to i8* + %10 = bitcast { <2 x float>, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point3* %3 to i8* + %12 = bitcast %struct.point3* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { <2 x float>, float }* %6 to i8* + %14 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { <2 x float>, float }, { <2 x float>, float }* %6, align 8 + ret { <2 x float>, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { <2 x float>, <2 x float> } @demo4(<2 x float> %0, <2 x float> %1) #2 { + %3 = alloca %struct.point4, align 4 + %4 = alloca %struct.point4, align 4 + %5 = bitcast %struct.point4* %4 to { <2 x float>, <2 x float> }* + %6 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %5, i32 0, i32 0 + store <2 x float> %0, <2 x float>* %6, align 4 + %7 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point4* %3 to i8* + %9 = bitcast %struct.point4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point4* %3 to { <2 x float>, <2 x float> }* + %11 = load { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %10, align 4 + ret { <2 x float>, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 8 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 8 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 8 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } +attributes #2 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_float64.ll b/internal/cabi/_testdata/arch/amd64/struct_float64.ll new file mode 100644 index 00000000..877f29f5 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_float64.ll @@ -0,0 +1,216 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local double @demo1(double %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store double %0, double* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load double, double* %7, align 8 + ret double %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, double } @demo2(double %0, double %1) #0 { + %3 = alloca %struct.point2, align 8 + %4 = alloca %struct.point2, align 8 + %5 = bitcast %struct.point2* %4 to { double, double }* + %6 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point2* %3 to { double, double }* + %11 = load { double, double }, { double, double }* %10, align 8 + ret { double, double } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef byval(%struct.point3) align 8 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef byval(%struct.point4) align 8 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef byval(%struct.point6) align 8 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef byval(%struct.point7) align 8 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef byval(%struct.point8) align 8 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_int16.ll b/internal/cabi/_testdata/arch/amd64/struct_int16.ll new file mode 100644 index 00000000..5755bca0 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_int16.ll @@ -0,0 +1,285 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo1(i16 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i16 %0, i16* %4, align 2 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 2, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i16, i16* %7, align 2 + ret i16 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = bitcast %struct.point2* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 4, i1 false) + %7 = bitcast %struct.point2* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo3(i48 %0) #0 { + %2 = alloca %struct.point3, align 2 + %3 = alloca %struct.point3, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 2 + %3 = alloca %struct.point4, align 2 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo5(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point5, align 2 + %4 = alloca %struct.point5, align 2 + %5 = alloca { i64, i16 }, align 2 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 2 + %9 = bitcast %struct.point5* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point5* %3 to i8* + %12 = bitcast %struct.point5* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo6(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point6, align 2 + %4 = alloca %struct.point6, align 2 + %5 = alloca { i64, i32 }, align 2 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 2 + %9 = bitcast %struct.point6* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 12, i1 false) + %11 = bitcast %struct.point6* %3 to i8* + %12 = bitcast %struct.point6* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i48 } @demo7(i64 %0, i48 %1) #0 { + %3 = alloca %struct.point7, align 2 + %4 = alloca %struct.point7, align 2 + %5 = alloca { i64, i48 }, align 2 + %6 = alloca { i64, i48 }, align 8 + %7 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 1 + store i48 %1, i48* %8, align 2 + %9 = bitcast %struct.point7* %4 to i8* + %10 = bitcast { i64, i48 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 14, i1 false) + %11 = bitcast %struct.point7* %3 to i8* + %12 = bitcast %struct.point7* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 14, i1 false) + %13 = bitcast { i64, i48 }* %6 to i8* + %14 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 14, i1 false) + %15 = load { i64, i48 }, { i64, i48 }* %6, align 8 + ret { i64, i48 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo8(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point8, align 2 + %4 = alloca %struct.point8, align 2 + %5 = bitcast %struct.point8* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 2 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 2 + %8 = bitcast %struct.point8* %3 to i8* + %9 = bitcast %struct.point8* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 16, i1 false) + %10 = bitcast %struct.point8* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 2 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_int32.ll b/internal/cabi/_testdata/arch/amd64/struct_int32.ll new file mode 100644 index 00000000..72b8c37e --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_int32.ll @@ -0,0 +1,237 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i32, i32* %7, align 4 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo3(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point3, align 4 + %4 = alloca %struct.point3, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point3* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point3* %3 to i8* + %12 = bitcast %struct.point3* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo4(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = alloca %struct.point4, align 4 + %5 = bitcast %struct.point4* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point4* %3 to i8* + %9 = bitcast %struct.point4* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point4* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 8 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 8 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 8 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_int64.ll b/internal/cabi/_testdata/arch/amd64/struct_int64.ll new file mode 100644 index 00000000..18d31ec0 --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_int64.ll @@ -0,0 +1,216 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo2(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point2, align 8 + %4 = alloca %struct.point2, align 8 + %5 = bitcast %struct.point2* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point2* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 8 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef byval(%struct.point3) align 8 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef byval(%struct.point4) align 8 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef byval(%struct.point6) align 8 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef byval(%struct.point7) align 8 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef byval(%struct.point8) align 8 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_int8.ll b/internal/cabi/_testdata/arch/amd64/struct_int8.ll new file mode 100644 index 00000000..3d8538ac --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_int8.ll @@ -0,0 +1,387 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8 @demo1(i8 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i8 %0, i8* %4, align 1 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 1, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i8, i8* %7, align 1 + ret i8 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo2(i16 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = bitcast %struct.point2* %3 to i16* + store i16 %0, i16* %4, align 1 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 2, i1 false) + %7 = bitcast %struct.point2* %2 to i16* + %8 = load i16, i16* %7, align 1 + ret i16 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i24 @demo3(i24 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i24, align 4 + %5 = alloca i24, align 4 + store i24 %0, i24* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i24* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 4 %7, i64 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 3, i1 false) + %10 = bitcast i24* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 1 %11, i64 3, i1 false) + %12 = load i24, i24* %5, align 4 + ret i24 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = bitcast %struct.point4* %3 to i32* + store i32 %0, i32* %4, align 1 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 4, i1 false) + %7 = bitcast %struct.point4* %2 to i32* + %8 = load i32, i32* %7, align 1 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i40 @demo5(i40 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i40, align 8 + %5 = alloca i40, align 8 + store i40 %0, i40* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i40* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 5, i1 false) + %10 = bitcast i40* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 5, i1 false) + %12 = load i40, i40* %5, align 8 + ret i40 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo6(i48 %0) #0 { + %2 = alloca %struct.point6, align 1 + %3 = alloca %struct.point6, align 1 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i56 @demo7(i56 %0) #0 { + %2 = alloca %struct.point7, align 1 + %3 = alloca %struct.point7, align 1 + %4 = alloca i56, align 8 + %5 = alloca i56, align 8 + store i56 %0, i56* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i56* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 7, i1 false) + %10 = bitcast i56* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 7, i1 false) + %12 = load i56, i56* %5, align 8 + ret i56 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 1 + %3 = alloca %struct.point8, align 1 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 1 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo9(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point9, align 1 + %4 = alloca %struct.point9, align 1 + %5 = alloca { i64, i8 }, align 1 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 1 + %9 = bitcast %struct.point9* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 9, i1 false) + %11 = bitcast %struct.point9* %3 to i8* + %12 = bitcast %struct.point9* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 9, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 1 %14, i64 9, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo10(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point10, align 1 + %4 = alloca %struct.point10, align 1 + %5 = alloca { i64, i16 }, align 1 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 1 + %9 = bitcast %struct.point10* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 10, i1 false) + %11 = bitcast %struct.point10* %3 to i8* + %12 = bitcast %struct.point10* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 10, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 1 %14, i64 10, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i24 } @demo11(i64 %0, i24 %1) #0 { + %3 = alloca %struct.point11, align 1 + %4 = alloca %struct.point11, align 1 + %5 = alloca { i64, i24 }, align 1 + %6 = alloca { i64, i24 }, align 8 + %7 = getelementptr inbounds { i64, i24 }, { i64, i24 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i24 }, { i64, i24 }* %5, i32 0, i32 1 + store i24 %1, i24* %8, align 1 + %9 = bitcast %struct.point11* %4 to i8* + %10 = bitcast { i64, i24 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 11, i1 false) + %11 = bitcast %struct.point11* %3 to i8* + %12 = bitcast %struct.point11* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 11, i1 false) + %13 = bitcast { i64, i24 }* %6 to i8* + %14 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 1 %14, i64 11, i1 false) + %15 = load { i64, i24 }, { i64, i24 }* %6, align 8 + ret { i64, i24 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo12(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point12, align 1 + %4 = alloca %struct.point12, align 1 + %5 = alloca { i64, i32 }, align 1 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 1 + %9 = bitcast %struct.point12* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 12, i1 false) + %11 = bitcast %struct.point12* %3 to i8* + %12 = bitcast %struct.point12* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 1 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i40 } @demo13(i64 %0, i40 %1) #0 { + %3 = alloca %struct.point13, align 1 + %4 = alloca %struct.point13, align 1 + %5 = alloca { i64, i40 }, align 1 + %6 = alloca { i64, i40 }, align 8 + %7 = getelementptr inbounds { i64, i40 }, { i64, i40 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i40 }, { i64, i40 }* %5, i32 0, i32 1 + store i40 %1, i40* %8, align 1 + %9 = bitcast %struct.point13* %4 to i8* + %10 = bitcast { i64, i40 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 13, i1 false) + %11 = bitcast %struct.point13* %3 to i8* + %12 = bitcast %struct.point13* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 13, i1 false) + %13 = bitcast { i64, i40 }* %6 to i8* + %14 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 1 %14, i64 13, i1 false) + %15 = load { i64, i40 }, { i64, i40 }* %6, align 8 + ret { i64, i40 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i48 } @demo14(i64 %0, i48 %1) #0 { + %3 = alloca %struct.point14, align 1 + %4 = alloca %struct.point14, align 1 + %5 = alloca { i64, i48 }, align 1 + %6 = alloca { i64, i48 }, align 8 + %7 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i48 }, { i64, i48 }* %5, i32 0, i32 1 + store i48 %1, i48* %8, align 1 + %9 = bitcast %struct.point14* %4 to i8* + %10 = bitcast { i64, i48 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 14, i1 false) + %11 = bitcast %struct.point14* %3 to i8* + %12 = bitcast %struct.point14* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 14, i1 false) + %13 = bitcast { i64, i48 }* %6 to i8* + %14 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 1 %14, i64 14, i1 false) + %15 = load { i64, i48 }, { i64, i48 }* %6, align 8 + ret { i64, i48 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i56 } @demo15(i64 %0, i56 %1) #0 { + %3 = alloca %struct.point15, align 1 + %4 = alloca %struct.point15, align 1 + %5 = alloca { i64, i56 }, align 1 + %6 = alloca { i64, i56 }, align 8 + %7 = getelementptr inbounds { i64, i56 }, { i64, i56 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 1 + %8 = getelementptr inbounds { i64, i56 }, { i64, i56 }* %5, i32 0, i32 1 + store i56 %1, i56* %8, align 1 + %9 = bitcast %struct.point15* %4 to i8* + %10 = bitcast { i64, i56 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 15, i1 false) + %11 = bitcast %struct.point15* %3 to i8* + %12 = bitcast %struct.point15* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %11, i8* align 1 %12, i64 15, i1 false) + %13 = bitcast { i64, i56 }* %6 to i8* + %14 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 1 %14, i64 15, i1 false) + %15 = load { i64, i56 }, { i64, i56 }* %6, align 8 + ret { i64, i56 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo16(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point16, align 1 + %4 = alloca %struct.point16, align 1 + %5 = bitcast %struct.point16* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 1 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 1 + %8 = bitcast %struct.point16* %3 to i8* + %9 = bitcast %struct.point16* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 16, i1 false) + %10 = bitcast %struct.point16* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 1 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_mixed.ll b/internal/cabi/_testdata/arch/amd64/struct_mixed.ll new file mode 100644 index 00000000..94f3003a --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_mixed.ll @@ -0,0 +1,17050 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = bitcast %struct.point1* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 4, i1 false) + %7 = bitcast %struct.point1* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8, i64 } @demo3(i8 %0, i64 %1) #0 { + %3 = alloca %struct.point3, align 8 + %4 = alloca %struct.point3, align 8 + %5 = bitcast %struct.point3* %4 to { i8, i64 }* + %6 = getelementptr inbounds { i8, i64 }, { i8, i64 }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 8 + %7 = getelementptr inbounds { i8, i64 }, { i8, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point3* %3 to i8* + %9 = bitcast %struct.point3* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point3* %3 to { i8, i64 }* + %11 = load { i8, i64 }, { i8, i64 }* %10, align 8 + ret { i8, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8, double } @demo5(i8 %0, double %1) #0 { + %3 = alloca %struct.point5, align 8 + %4 = alloca %struct.point5, align 8 + %5 = bitcast %struct.point5* %4 to { i8, double }* + %6 = getelementptr inbounds { i8, double }, { i8, double }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 8 + %7 = getelementptr inbounds { i8, double }, { i8, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point5* %3 to i8* + %9 = bitcast %struct.point5* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point5* %3 to { i8, double }* + %11 = load { i8, double }, { i8, double }* %10, align 8 + ret { i8, double } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8, i8* } @demo6(i8 %0, i8* %1) #0 { + %3 = alloca %struct.point6, align 8 + %4 = alloca %struct.point6, align 8 + %5 = bitcast %struct.point6* %4 to { i8, i8* }* + %6 = getelementptr inbounds { i8, i8* }, { i8, i8* }* %5, i32 0, i32 0 + store i8 %0, i8* %6, align 8 + %7 = getelementptr inbounds { i8, i8* }, { i8, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.point6* %3 to i8* + %9 = bitcast %struct.point6* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point6* %3 to { i8, i8* }* + %11 = load { i8, i8* }, { i8, i8* }* %10, align 8 + ret { i8, i8* } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo7(i32 %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = bitcast %struct.point7* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point7* %2 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 4, i1 false) + %7 = bitcast %struct.point7* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i16, i64 } @demo9(i16 %0, i64 %1) #0 { + %3 = alloca %struct.point9, align 8 + %4 = alloca %struct.point9, align 8 + %5 = bitcast %struct.point9* %4 to { i16, i64 }* + %6 = getelementptr inbounds { i16, i64 }, { i16, i64 }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 8 + %7 = getelementptr inbounds { i16, i64 }, { i16, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point9* %3 to i8* + %9 = bitcast %struct.point9* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point9* %3 to { i16, i64 }* + %11 = load { i16, i64 }, { i16, i64 }* %10, align 8 + ret { i16, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo10(i64 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = bitcast %struct.point10* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point10* %2 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point10* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i16, double } @demo11(i16 %0, double %1) #0 { + %3 = alloca %struct.point11, align 8 + %4 = alloca %struct.point11, align 8 + %5 = bitcast %struct.point11* %4 to { i16, double }* + %6 = getelementptr inbounds { i16, double }, { i16, double }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 8 + %7 = getelementptr inbounds { i16, double }, { i16, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point11* %3 to i8* + %9 = bitcast %struct.point11* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point11* %3 to { i16, double }* + %11 = load { i16, double }, { i16, double }* %10, align 8 + ret { i16, double } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i16, i8* } @demo12(i16 %0, i8* %1) #0 { + %3 = alloca %struct.point12, align 8 + %4 = alloca %struct.point12, align 8 + %5 = bitcast %struct.point12* %4 to { i16, i8* }* + %6 = getelementptr inbounds { i16, i8* }, { i16, i8* }* %5, i32 0, i32 0 + store i16 %0, i16* %6, align 8 + %7 = getelementptr inbounds { i16, i8* }, { i16, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.point12* %3 to i8* + %9 = bitcast %struct.point12* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point12* %3 to { i16, i8* }* + %11 = load { i16, i8* }, { i16, i8* }* %10, align 8 + ret { i16, i8* } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo13(i64 %0) #0 { + %2 = alloca %struct.point13, align 4 + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point13* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo14(i64 %0) #0 { + %2 = alloca %struct.point14, align 4 + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point14* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i32, i64 } @demo15(i32 %0, i64 %1) #0 { + %3 = alloca %struct.point15, align 8 + %4 = alloca %struct.point15, align 8 + %5 = bitcast %struct.point15* %4 to { i32, i64 }* + %6 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 8 + %7 = getelementptr inbounds { i32, i64 }, { i32, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point15* %3 to i8* + %9 = bitcast %struct.point15* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point15* %3 to { i32, i64 }* + %11 = load { i32, i64 }, { i32, i64 }* %10, align 8 + ret { i32, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo16(i64 %0) #0 { + %2 = alloca %struct.point16, align 4 + %3 = alloca %struct.point16, align 4 + %4 = bitcast %struct.point16* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point16* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i32, double } @demo17(i32 %0, double %1) #0 { + %3 = alloca %struct.point17, align 8 + %4 = alloca %struct.point17, align 8 + %5 = bitcast %struct.point17* %4 to { i32, double }* + %6 = getelementptr inbounds { i32, double }, { i32, double }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 8 + %7 = getelementptr inbounds { i32, double }, { i32, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point17* %3 to i8* + %9 = bitcast %struct.point17* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point17* %3 to { i32, double }* + %11 = load { i32, double }, { i32, double }* %10, align 8 + ret { i32, double } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i32, i8* } @demo18(i32 %0, i8* %1) #0 { + %3 = alloca %struct.point18, align 8 + %4 = alloca %struct.point18, align 8 + %5 = bitcast %struct.point18* %4 to { i32, i8* }* + %6 = getelementptr inbounds { i32, i8* }, { i32, i8* }* %5, i32 0, i32 0 + store i32 %0, i32* %6, align 8 + %7 = getelementptr inbounds { i32, i8* }, { i32, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.point18* %3 to i8* + %9 = bitcast %struct.point18* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point18* %3 to { i32, i8* }* + %11 = load { i32, i8* }, { i32, i8* }* %10, align 8 + ret { i32, i8* } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo19(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point19, align 8 + %4 = alloca %struct.point19, align 8 + %5 = bitcast %struct.point19* %4 to { i64, i8 }* + %6 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 8 + %8 = bitcast %struct.point19* %3 to i8* + %9 = bitcast %struct.point19* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point19* %3 to { i64, i8 }* + %11 = load { i64, i8 }, { i64, i8 }* %10, align 8 + ret { i64, i8 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo20(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point20, align 8 + %4 = alloca %struct.point20, align 8 + %5 = bitcast %struct.point20* %4 to { i64, i16 }* + %6 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 8 + %8 = bitcast %struct.point20* %3 to i8* + %9 = bitcast %struct.point20* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point20* %3 to { i64, i16 }* + %11 = load { i64, i16 }, { i64, i16 }* %10, align 8 + ret { i64, i16 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo21(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point21, align 8 + %4 = alloca %struct.point21, align 8 + %5 = bitcast %struct.point21* %4 to { i64, i32 }* + %6 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 8 + %8 = bitcast %struct.point21* %3 to i8* + %9 = bitcast %struct.point21* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point21* %3 to { i64, i32 }* + %11 = load { i64, i32 }, { i64, i32 }* %10, align 8 + ret { i64, i32 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo22(i64 %0, float %1) #0 { + %3 = alloca %struct.point22, align 8 + %4 = alloca %struct.point22, align 8 + %5 = bitcast %struct.point22* %4 to { i64, float }* + %6 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 8 + %8 = bitcast %struct.point22* %3 to i8* + %9 = bitcast %struct.point22* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point22* %3 to { i64, float }* + %11 = load { i64, float }, { i64, float }* %10, align 8 + ret { i64, float } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, double } @demo23(i64 %0, double %1) #0 { + %3 = alloca %struct.point23, align 8 + %4 = alloca %struct.point23, align 8 + %5 = bitcast %struct.point23* %4 to { i64, double }* + %6 = getelementptr inbounds { i64, double }, { i64, double }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, double }, { i64, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point23* %3 to i8* + %9 = bitcast %struct.point23* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point23* %3 to { i64, double }* + %11 = load { i64, double }, { i64, double }* %10, align 8 + ret { i64, double } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8* } @demo24(i64 %0, i8* %1) #0 { + %3 = alloca %struct.point24, align 8 + %4 = alloca %struct.point24, align 8 + %5 = bitcast %struct.point24* %4 to { i64, i8* }* + %6 = getelementptr inbounds { i64, i8* }, { i64, i8* }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 8 + %7 = getelementptr inbounds { i64, i8* }, { i64, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.point24* %3 to i8* + %9 = bitcast %struct.point24* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point24* %3 to { i64, i8* }* + %11 = load { i64, i8* }, { i64, i8* }* %10, align 8 + ret { i64, i8* } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo25(i64 %0) #0 { + %2 = alloca %struct.point25, align 4 + %3 = alloca %struct.point25, align 4 + %4 = bitcast %struct.point25* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point25* %2 to i8* + %6 = bitcast %struct.point25* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point25* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo26(i64 %0) #0 { + %2 = alloca %struct.point26, align 4 + %3 = alloca %struct.point26, align 4 + %4 = bitcast %struct.point26* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point26* %2 to i8* + %6 = bitcast %struct.point26* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point26* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo27(i64 %0) #0 { + %2 = alloca %struct.point27, align 4 + %3 = alloca %struct.point27, align 4 + %4 = bitcast %struct.point27* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point27* %2 to i8* + %6 = bitcast %struct.point27* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point27* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { float, i64 } @demo28(float %0, i64 %1) #0 { + %3 = alloca %struct.point28, align 8 + %4 = alloca %struct.point28, align 8 + %5 = bitcast %struct.point28* %4 to { float, i64 }* + %6 = getelementptr inbounds { float, i64 }, { float, i64 }* %5, i32 0, i32 0 + store float %0, float* %6, align 8 + %7 = getelementptr inbounds { float, i64 }, { float, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point28* %3 to i8* + %9 = bitcast %struct.point28* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point28* %3 to { float, i64 }* + %11 = load { float, i64 }, { float, i64 }* %10, align 8 + ret { float, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { float, double } @demo29(float %0, double %1) #0 { + %3 = alloca %struct.point29, align 8 + %4 = alloca %struct.point29, align 8 + %5 = bitcast %struct.point29* %4 to { float, double }* + %6 = getelementptr inbounds { float, double }, { float, double }* %5, i32 0, i32 0 + store float %0, float* %6, align 8 + %7 = getelementptr inbounds { float, double }, { float, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point29* %3 to i8* + %9 = bitcast %struct.point29* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point29* %3 to { float, double }* + %11 = load { float, double }, { float, double }* %10, align 8 + ret { float, double } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { float, i8* } @demo30(float %0, i8* %1) #0 { + %3 = alloca %struct.point30, align 8 + %4 = alloca %struct.point30, align 8 + %5 = bitcast %struct.point30* %4 to { float, i8* }* + %6 = getelementptr inbounds { float, i8* }, { float, i8* }* %5, i32 0, i32 0 + store float %0, float* %6, align 8 + %7 = getelementptr inbounds { float, i8* }, { float, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.point30* %3 to i8* + %9 = bitcast %struct.point30* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point30* %3 to { float, i8* }* + %11 = load { float, i8* }, { float, i8* }* %10, align 8 + ret { float, i8* } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, i8 } @demo31(double %0, i8 %1) #0 { + %3 = alloca %struct.point31, align 8 + %4 = alloca %struct.point31, align 8 + %5 = bitcast %struct.point31* %4 to { double, i8 }* + %6 = getelementptr inbounds { double, i8 }, { double, i8 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i8 }, { double, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 8 + %8 = bitcast %struct.point31* %3 to i8* + %9 = bitcast %struct.point31* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point31* %3 to { double, i8 }* + %11 = load { double, i8 }, { double, i8 }* %10, align 8 + ret { double, i8 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, i16 } @demo32(double %0, i16 %1) #0 { + %3 = alloca %struct.point32, align 8 + %4 = alloca %struct.point32, align 8 + %5 = bitcast %struct.point32* %4 to { double, i16 }* + %6 = getelementptr inbounds { double, i16 }, { double, i16 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i16 }, { double, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 8 + %8 = bitcast %struct.point32* %3 to i8* + %9 = bitcast %struct.point32* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point32* %3 to { double, i16 }* + %11 = load { double, i16 }, { double, i16 }* %10, align 8 + ret { double, i16 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, i32 } @demo33(double %0, i32 %1) #0 { + %3 = alloca %struct.point33, align 8 + %4 = alloca %struct.point33, align 8 + %5 = bitcast %struct.point33* %4 to { double, i32 }* + %6 = getelementptr inbounds { double, i32 }, { double, i32 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i32 }, { double, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 8 + %8 = bitcast %struct.point33* %3 to i8* + %9 = bitcast %struct.point33* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point33* %3 to { double, i32 }* + %11 = load { double, i32 }, { double, i32 }* %10, align 8 + ret { double, i32 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, i64 } @demo34(double %0, i64 %1) #0 { + %3 = alloca %struct.point34, align 8 + %4 = alloca %struct.point34, align 8 + %5 = bitcast %struct.point34* %4 to { double, i64 }* + %6 = getelementptr inbounds { double, i64 }, { double, i64 }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i64 }, { double, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point34* %3 to i8* + %9 = bitcast %struct.point34* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point34* %3 to { double, i64 }* + %11 = load { double, i64 }, { double, i64 }* %10, align 8 + ret { double, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, float } @demo35(double %0, float %1) #0 { + %3 = alloca %struct.point35, align 8 + %4 = alloca %struct.point35, align 8 + %5 = bitcast %struct.point35* %4 to { double, float }* + %6 = getelementptr inbounds { double, float }, { double, float }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, float }, { double, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 8 + %8 = bitcast %struct.point35* %3 to i8* + %9 = bitcast %struct.point35* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point35* %3 to { double, float }* + %11 = load { double, float }, { double, float }* %10, align 8 + ret { double, float } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { double, i8* } @demo36(double %0, i8* %1) #0 { + %3 = alloca %struct.point36, align 8 + %4 = alloca %struct.point36, align 8 + %5 = bitcast %struct.point36* %4 to { double, i8* }* + %6 = getelementptr inbounds { double, i8* }, { double, i8* }* %5, i32 0, i32 0 + store double %0, double* %6, align 8 + %7 = getelementptr inbounds { double, i8* }, { double, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.point36* %3 to i8* + %9 = bitcast %struct.point36* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point36* %3 to { double, i8* }* + %11 = load { double, i8* }, { double, i8* }* %10, align 8 + ret { double, i8* } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, i8 } @demo37(i8* %0, i8 %1) #0 { + %3 = alloca %struct.point37, align 8 + %4 = alloca %struct.point37, align 8 + %5 = bitcast %struct.point37* %4 to { i8*, i8 }* + %6 = getelementptr inbounds { i8*, i8 }, { i8*, i8 }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, i8 }, { i8*, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %7, align 8 + %8 = bitcast %struct.point37* %3 to i8* + %9 = bitcast %struct.point37* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point37* %3 to { i8*, i8 }* + %11 = load { i8*, i8 }, { i8*, i8 }* %10, align 8 + ret { i8*, i8 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, i16 } @demo38(i8* %0, i16 %1) #0 { + %3 = alloca %struct.point38, align 8 + %4 = alloca %struct.point38, align 8 + %5 = bitcast %struct.point38* %4 to { i8*, i16 }* + %6 = getelementptr inbounds { i8*, i16 }, { i8*, i16 }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, i16 }, { i8*, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %7, align 8 + %8 = bitcast %struct.point38* %3 to i8* + %9 = bitcast %struct.point38* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point38* %3 to { i8*, i16 }* + %11 = load { i8*, i16 }, { i8*, i16 }* %10, align 8 + ret { i8*, i16 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, i32 } @demo39(i8* %0, i32 %1) #0 { + %3 = alloca %struct.point39, align 8 + %4 = alloca %struct.point39, align 8 + %5 = bitcast %struct.point39* %4 to { i8*, i32 }* + %6 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %7, align 8 + %8 = bitcast %struct.point39* %3 to i8* + %9 = bitcast %struct.point39* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point39* %3 to { i8*, i32 }* + %11 = load { i8*, i32 }, { i8*, i32 }* %10, align 8 + ret { i8*, i32 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, i64 } @demo40(i8* %0, i64 %1) #0 { + %3 = alloca %struct.point40, align 8 + %4 = alloca %struct.point40, align 8 + %5 = bitcast %struct.point40* %4 to { i8*, i64 }* + %6 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 8 + %8 = bitcast %struct.point40* %3 to i8* + %9 = bitcast %struct.point40* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point40* %3 to { i8*, i64 }* + %11 = load { i8*, i64 }, { i8*, i64 }* %10, align 8 + ret { i8*, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, float } @demo41(i8* %0, float %1) #0 { + %3 = alloca %struct.point41, align 8 + %4 = alloca %struct.point41, align 8 + %5 = bitcast %struct.point41* %4 to { i8*, float }* + %6 = getelementptr inbounds { i8*, float }, { i8*, float }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, float }, { i8*, float }* %5, i32 0, i32 1 + store float %1, float* %7, align 8 + %8 = bitcast %struct.point41* %3 to i8* + %9 = bitcast %struct.point41* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point41* %3 to { i8*, float }* + %11 = load { i8*, float }, { i8*, float }* %10, align 8 + ret { i8*, float } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, double } @demo42(i8* %0, double %1) #0 { + %3 = alloca %struct.point42, align 8 + %4 = alloca %struct.point42, align 8 + %5 = bitcast %struct.point42* %4 to { i8*, double }* + %6 = getelementptr inbounds { i8*, double }, { i8*, double }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, double }, { i8*, double }* %5, i32 0, i32 1 + store double %1, double* %7, align 8 + %8 = bitcast %struct.point42* %3 to i8* + %9 = bitcast %struct.point42* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point42* %3 to { i8*, double }* + %11 = load { i8*, double }, { i8*, double }* %10, align 8 + ret { i8*, double } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo43(i48 %0) #0 { + %2 = alloca %struct.point43, align 2 + %3 = alloca %struct.point43, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo44(i48 %0) #0 { + %2 = alloca %struct.point44, align 2 + %3 = alloca %struct.point44, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo45(i64 %0) #0 { + %2 = alloca %struct.point45, align 2 + %3 = alloca %struct.point45, align 2 + %4 = bitcast %struct.point45* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point45* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo46(i64 %0) #0 { + %2 = alloca %struct.point46, align 2 + %3 = alloca %struct.point46, align 2 + %4 = bitcast %struct.point46* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point46* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo47(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point47, align 4 + %4 = alloca %struct.point47, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point47* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point47* %3 to i8* + %12 = bitcast %struct.point47* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point47* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo48(i64 %0, float %1) #0 { + %3 = alloca %struct.point48, align 4 + %4 = alloca %struct.point48, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point48* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point48* %3 to i8* + %12 = bitcast %struct.point48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point48* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo49(i64 %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point49* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo50(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point50, align 2 + %4 = alloca %struct.point50, align 2 + %5 = alloca { i64, i8 }, align 2 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 2 + %9 = bitcast %struct.point50* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point50* %3 to i8* + %12 = bitcast %struct.point50* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point50* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo51(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point51, align 2 + %4 = alloca %struct.point51, align 2 + %5 = alloca { i64, i16 }, align 2 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 2 + %9 = bitcast %struct.point51* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point51* %3 to i8* + %12 = bitcast %struct.point51* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point51* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo52(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point52, align 4 + %4 = alloca %struct.point52, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point52* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point52* %3 to i8* + %12 = bitcast %struct.point52* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point52* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo53(i64 %0, float %1) #0 { + %3 = alloca %struct.point53, align 4 + %4 = alloca %struct.point53, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point53* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point53* %3 to i8* + %12 = bitcast %struct.point53* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point53* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo54(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point54, align 4 + %4 = alloca %struct.point54, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point54* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point54* %3 to i8* + %12 = bitcast %struct.point54* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point54* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo55(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point55, align 4 + %4 = alloca %struct.point55, align 4 + %5 = bitcast %struct.point55* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point55* %3 to i8* + %9 = bitcast %struct.point55* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point55* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo56(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point56, align 4 + %4 = alloca %struct.point56, align 4 + %5 = bitcast %struct.point56* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point56* %3 to i8* + %9 = bitcast %struct.point56* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point56* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo57(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point57, align 4 + %4 = alloca %struct.point57, align 4 + %5 = bitcast %struct.point57* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point57* %3 to i8* + %9 = bitcast %struct.point57* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point57* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo58(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point58, align 4 + %4 = alloca %struct.point58, align 4 + %5 = bitcast %struct.point58* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point58* %3 to i8* + %9 = bitcast %struct.point58* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point58* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo59(i64 %0, float %1) #0 { + %3 = alloca %struct.point59, align 4 + %4 = alloca %struct.point59, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point59* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point59* %3 to i8* + %12 = bitcast %struct.point59* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point59* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo60(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point60, align 4 + %4 = alloca %struct.point60, align 4 + %5 = bitcast %struct.point60* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point60* %3 to i8* + %9 = bitcast %struct.point60* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point60* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo61(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point61, align 4 + %4 = alloca %struct.point61, align 4 + %5 = bitcast %struct.point61* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point61* %3 to i8* + %9 = bitcast %struct.point61* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point61* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo62(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point62, align 4 + %4 = alloca %struct.point62, align 4 + %5 = bitcast %struct.point62* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point62* %3 to i8* + %9 = bitcast %struct.point62* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point62* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo63(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point63, align 4 + %4 = alloca %struct.point63, align 4 + %5 = bitcast %struct.point63* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point63* %3 to i8* + %9 = bitcast %struct.point63* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point63* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo64(i48 %0) #0 { + %2 = alloca %struct.point64, align 2 + %3 = alloca %struct.point64, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo65(i64 %0) #0 { + %2 = alloca %struct.point65, align 2 + %3 = alloca %struct.point65, align 2 + %4 = bitcast %struct.point65* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point65* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo66(i64 %0) #0 { + %2 = alloca %struct.point66, align 2 + %3 = alloca %struct.point66, align 2 + %4 = bitcast %struct.point66* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point66* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo67(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point67, align 2 + %4 = alloca %struct.point67, align 2 + %5 = alloca { i64, i16 }, align 2 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 2 + %9 = bitcast %struct.point67* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point67* %3 to i8* + %12 = bitcast %struct.point67* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point67* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo68(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point68, align 4 + %4 = alloca %struct.point68, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point68* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point68* %3 to i8* + %12 = bitcast %struct.point68* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point68* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo69(i64 %0, float %1) #0 { + %3 = alloca %struct.point69, align 4 + %4 = alloca %struct.point69, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point69* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point69* %3 to i8* + %12 = bitcast %struct.point69* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point69* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo70(i64 %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point70* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo71(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point71, align 2 + %4 = alloca %struct.point71, align 2 + %5 = alloca { i64, i8 }, align 2 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 2 + %9 = bitcast %struct.point71* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point71* %3 to i8* + %12 = bitcast %struct.point71* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point71* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo72(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point72, align 2 + %4 = alloca %struct.point72, align 2 + %5 = alloca { i64, i16 }, align 2 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 2 + %9 = bitcast %struct.point72* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point72* %3 to i8* + %12 = bitcast %struct.point72* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point72* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo73(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point73, align 4 + %4 = alloca %struct.point73, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point73* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point73* %3 to i8* + %12 = bitcast %struct.point73* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point73* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo74(i64 %0, float %1) #0 { + %3 = alloca %struct.point74, align 4 + %4 = alloca %struct.point74, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point74* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point74* %3 to i8* + %12 = bitcast %struct.point74* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point74* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo75(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point75, align 4 + %4 = alloca %struct.point75, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point75* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point75* %3 to i8* + %12 = bitcast %struct.point75* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point75* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo76(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point76, align 4 + %4 = alloca %struct.point76, align 4 + %5 = bitcast %struct.point76* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point76* %3 to i8* + %9 = bitcast %struct.point76* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point76* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo77(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point77, align 4 + %4 = alloca %struct.point77, align 4 + %5 = bitcast %struct.point77* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point77* %3 to i8* + %9 = bitcast %struct.point77* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point77* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo78(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point78, align 4 + %4 = alloca %struct.point78, align 4 + %5 = bitcast %struct.point78* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point78* %3 to i8* + %9 = bitcast %struct.point78* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point78* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo79(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point79, align 4 + %4 = alloca %struct.point79, align 4 + %5 = bitcast %struct.point79* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point79* %3 to i8* + %9 = bitcast %struct.point79* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point79* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo80(i64 %0, float %1) #0 { + %3 = alloca %struct.point80, align 4 + %4 = alloca %struct.point80, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point80* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point80* %3 to i8* + %12 = bitcast %struct.point80* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point80* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo81(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point81, align 4 + %4 = alloca %struct.point81, align 4 + %5 = bitcast %struct.point81* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point81* %3 to i8* + %9 = bitcast %struct.point81* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point81* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo82(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point82, align 4 + %4 = alloca %struct.point82, align 4 + %5 = bitcast %struct.point82* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point82* %3 to i8* + %9 = bitcast %struct.point82* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point82* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo83(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point83, align 4 + %4 = alloca %struct.point83, align 4 + %5 = bitcast %struct.point83* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point83* %3 to i8* + %9 = bitcast %struct.point83* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point83* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo84(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point84, align 4 + %4 = alloca %struct.point84, align 4 + %5 = bitcast %struct.point84* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point84* %3 to i8* + %9 = bitcast %struct.point84* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point84* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo85(i64 %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point85* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo86(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point86, align 4 + %4 = alloca %struct.point86, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point86* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point86* %3 to i8* + %12 = bitcast %struct.point86* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point86* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo87(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point87, align 4 + %4 = alloca %struct.point87, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point87* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point87* %3 to i8* + %12 = bitcast %struct.point87* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point87* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo88(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point88, align 4 + %4 = alloca %struct.point88, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point88* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point88* %3 to i8* + %12 = bitcast %struct.point88* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point88* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo89(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point89, align 4 + %4 = alloca %struct.point89, align 4 + %5 = bitcast %struct.point89* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point89* %3 to i8* + %9 = bitcast %struct.point89* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point89* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo90(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point90, align 4 + %4 = alloca %struct.point90, align 4 + %5 = bitcast %struct.point90* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point90* %3 to i8* + %9 = bitcast %struct.point90* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point90* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo91(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point91, align 4 + %4 = alloca %struct.point91, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point91* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point91* %3 to i8* + %12 = bitcast %struct.point91* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point91* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo92(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point92, align 4 + %4 = alloca %struct.point92, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point92* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point92* %3 to i8* + %12 = bitcast %struct.point92* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point92* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo93(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point93, align 4 + %4 = alloca %struct.point93, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point93* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point93* %3 to i8* + %12 = bitcast %struct.point93* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point93* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo94(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point94, align 4 + %4 = alloca %struct.point94, align 4 + %5 = bitcast %struct.point94* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point94* %3 to i8* + %9 = bitcast %struct.point94* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point94* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo95(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point95, align 4 + %4 = alloca %struct.point95, align 4 + %5 = bitcast %struct.point95* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point95* %3 to i8* + %9 = bitcast %struct.point95* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point95* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo96(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point96, align 4 + %4 = alloca %struct.point96, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point96* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point96* %3 to i8* + %12 = bitcast %struct.point96* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point96* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo97(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point97, align 4 + %4 = alloca %struct.point97, align 4 + %5 = bitcast %struct.point97* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point97* %3 to i8* + %9 = bitcast %struct.point97* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point97* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo98(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point98, align 4 + %4 = alloca %struct.point98, align 4 + %5 = bitcast %struct.point98* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point98* %3 to i8* + %9 = bitcast %struct.point98* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point98* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo99(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point99, align 4 + %4 = alloca %struct.point99, align 4 + %5 = bitcast %struct.point99* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point99* %3 to i8* + %9 = bitcast %struct.point99* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point99* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo100(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point100, align 4 + %4 = alloca %struct.point100, align 4 + %5 = bitcast %struct.point100* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point100* %3 to i8* + %9 = bitcast %struct.point100* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point100* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo101(i64 %0, float %1) #0 { + %3 = alloca %struct.point101, align 4 + %4 = alloca %struct.point101, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point101* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point101* %3 to i8* + %12 = bitcast %struct.point101* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point101* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo102(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point102, align 4 + %4 = alloca %struct.point102, align 4 + %5 = bitcast %struct.point102* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point102* %3 to i8* + %9 = bitcast %struct.point102* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point102* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo103(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point103, align 4 + %4 = alloca %struct.point103, align 4 + %5 = bitcast %struct.point103* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point103* %3 to i8* + %9 = bitcast %struct.point103* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point103* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo104(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point104, align 4 + %4 = alloca %struct.point104, align 4 + %5 = bitcast %struct.point104* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point104* %3 to i8* + %9 = bitcast %struct.point104* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point104* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo105(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point105, align 4 + %4 = alloca %struct.point105, align 4 + %5 = bitcast %struct.point105* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point105* %3 to i8* + %9 = bitcast %struct.point105* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point105* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo106(i64 %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point106* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo107(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point107, align 4 + %4 = alloca %struct.point107, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point107* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point107* %3 to i8* + %12 = bitcast %struct.point107* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point107* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo108(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point108, align 4 + %4 = alloca %struct.point108, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point108* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point108* %3 to i8* + %12 = bitcast %struct.point108* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point108* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo109(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point109, align 4 + %4 = alloca %struct.point109, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point109* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point109* %3 to i8* + %12 = bitcast %struct.point109* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point109* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo110(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point110, align 4 + %4 = alloca %struct.point110, align 4 + %5 = bitcast %struct.point110* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point110* %3 to i8* + %9 = bitcast %struct.point110* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point110* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo111(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point111, align 4 + %4 = alloca %struct.point111, align 4 + %5 = bitcast %struct.point111* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point111* %3 to i8* + %9 = bitcast %struct.point111* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point111* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo112(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point112, align 4 + %4 = alloca %struct.point112, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point112* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point112* %3 to i8* + %12 = bitcast %struct.point112* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point112* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo113(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point113, align 4 + %4 = alloca %struct.point113, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point113* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point113* %3 to i8* + %12 = bitcast %struct.point113* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point113* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo114(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point114, align 4 + %4 = alloca %struct.point114, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point114* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point114* %3 to i8* + %12 = bitcast %struct.point114* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point114* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo115(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point115, align 4 + %4 = alloca %struct.point115, align 4 + %5 = bitcast %struct.point115* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point115* %3 to i8* + %9 = bitcast %struct.point115* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point115* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo116(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point116, align 4 + %4 = alloca %struct.point116, align 4 + %5 = bitcast %struct.point116* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point116* %3 to i8* + %9 = bitcast %struct.point116* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point116* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo117(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point117, align 4 + %4 = alloca %struct.point117, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point117* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point117* %3 to i8* + %12 = bitcast %struct.point117* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point117* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo118(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point118, align 4 + %4 = alloca %struct.point118, align 4 + %5 = bitcast %struct.point118* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point118* %3 to i8* + %9 = bitcast %struct.point118* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point118* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo119(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point119, align 4 + %4 = alloca %struct.point119, align 4 + %5 = bitcast %struct.point119* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point119* %3 to i8* + %9 = bitcast %struct.point119* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point119* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo120(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point120, align 4 + %4 = alloca %struct.point120, align 4 + %5 = bitcast %struct.point120* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point120* %3 to i8* + %9 = bitcast %struct.point120* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point120* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo121(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point121, align 4 + %4 = alloca %struct.point121, align 4 + %5 = bitcast %struct.point121* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point121* %3 to i8* + %9 = bitcast %struct.point121* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point121* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo122(i64 %0, float %1) #0 { + %3 = alloca %struct.point122, align 4 + %4 = alloca %struct.point122, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point122* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point122* %3 to i8* + %12 = bitcast %struct.point122* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point122* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo123(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point123, align 4 + %4 = alloca %struct.point123, align 4 + %5 = bitcast %struct.point123* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point123* %3 to i8* + %9 = bitcast %struct.point123* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point123* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo124(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point124, align 4 + %4 = alloca %struct.point124, align 4 + %5 = bitcast %struct.point124* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point124* %3 to i8* + %9 = bitcast %struct.point124* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point124* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo125(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point125, align 4 + %4 = alloca %struct.point125, align 4 + %5 = bitcast %struct.point125* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point125* %3 to i8* + %9 = bitcast %struct.point125* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point125* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo126(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point126, align 4 + %4 = alloca %struct.point126, align 4 + %5 = bitcast %struct.point126* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point126* %3 to i8* + %9 = bitcast %struct.point126* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point126* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo127(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point127, align 4 + %4 = alloca %struct.point127, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point127* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point127* %3 to i8* + %12 = bitcast %struct.point127* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point127* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo128(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point128, align 4 + %4 = alloca %struct.point128, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point128* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point128* %3 to i8* + %12 = bitcast %struct.point128* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point128* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo129(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point129, align 4 + %4 = alloca %struct.point129, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point129* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point129* %3 to i8* + %12 = bitcast %struct.point129* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point129* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo130(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point130, align 4 + %4 = alloca %struct.point130, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point130* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point130* %3 to i8* + %12 = bitcast %struct.point130* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point130* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo131(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point131, align 4 + %4 = alloca %struct.point131, align 4 + %5 = bitcast %struct.point131* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point131* %3 to i8* + %9 = bitcast %struct.point131* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point131* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo132(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point132, align 4 + %4 = alloca %struct.point132, align 4 + %5 = bitcast %struct.point132* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point132* %3 to i8* + %9 = bitcast %struct.point132* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point132* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo133(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point133, align 4 + %4 = alloca %struct.point133, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point133* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point133* %3 to i8* + %12 = bitcast %struct.point133* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point133* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo134(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point134, align 4 + %4 = alloca %struct.point134, align 4 + %5 = bitcast %struct.point134* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point134* %3 to i8* + %9 = bitcast %struct.point134* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point134* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo135(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point135, align 4 + %4 = alloca %struct.point135, align 4 + %5 = bitcast %struct.point135* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point135* %3 to i8* + %9 = bitcast %struct.point135* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point135* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo136(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point136, align 4 + %4 = alloca %struct.point136, align 4 + %5 = bitcast %struct.point136* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point136* %3 to i8* + %9 = bitcast %struct.point136* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point136* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo137(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point137, align 4 + %4 = alloca %struct.point137, align 4 + %5 = bitcast %struct.point137* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point137* %3 to i8* + %9 = bitcast %struct.point137* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point137* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo138(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point138, align 4 + %4 = alloca %struct.point138, align 4 + %5 = bitcast %struct.point138* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point138* %3 to i8* + %9 = bitcast %struct.point138* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point138* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef byval(%struct.point139) align 8 %1) #0 { + %3 = bitcast %struct.point139* %0 to i8* + %4 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef byval(%struct.point140) align 8 %1) #0 { + %3 = bitcast %struct.point140* %0 to i8* + %4 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef byval(%struct.point141) align 8 %1) #0 { + %3 = bitcast %struct.point141* %0 to i8* + %4 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef byval(%struct.point142) align 8 %1) #0 { + %3 = bitcast %struct.point142* %0 to i8* + %4 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo143(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point143, align 4 + %4 = alloca %struct.point143, align 4 + %5 = bitcast %struct.point143* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point143* %3 to i8* + %9 = bitcast %struct.point143* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point143* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef byval(%struct.point144) align 8 %1) #0 { + %3 = bitcast %struct.point144* %0 to i8* + %4 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef byval(%struct.point145) align 8 %1) #0 { + %3 = bitcast %struct.point145* %0 to i8* + %4 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef byval(%struct.point146) align 8 %1) #0 { + %3 = bitcast %struct.point146* %0 to i8* + %4 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef byval(%struct.point147) align 8 %1) #0 { + %3 = bitcast %struct.point147* %0 to i8* + %4 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo148(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point148, align 4 + %4 = alloca %struct.point148, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point148* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point148* %3 to i8* + %12 = bitcast %struct.point148* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point148* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo149(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point149, align 4 + %4 = alloca %struct.point149, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point149* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point149* %3 to i8* + %12 = bitcast %struct.point149* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point149* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo150(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point150, align 4 + %4 = alloca %struct.point150, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point150* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point150* %3 to i8* + %12 = bitcast %struct.point150* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point150* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo151(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point151, align 4 + %4 = alloca %struct.point151, align 4 + %5 = bitcast %struct.point151* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point151* %3 to i8* + %9 = bitcast %struct.point151* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point151* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo152(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point152, align 4 + %4 = alloca %struct.point152, align 4 + %5 = bitcast %struct.point152* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point152* %3 to i8* + %9 = bitcast %struct.point152* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point152* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo153(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point153, align 4 + %4 = alloca %struct.point153, align 4 + %5 = bitcast %struct.point153* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point153* %3 to i8* + %9 = bitcast %struct.point153* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point153* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo154(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point154, align 4 + %4 = alloca %struct.point154, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point154* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point154* %3 to i8* + %12 = bitcast %struct.point154* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point154* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo155(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point155, align 4 + %4 = alloca %struct.point155, align 4 + %5 = bitcast %struct.point155* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point155* %3 to i8* + %9 = bitcast %struct.point155* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point155* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo156(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point156, align 4 + %4 = alloca %struct.point156, align 4 + %5 = bitcast %struct.point156* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point156* %3 to i8* + %9 = bitcast %struct.point156* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point156* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo157(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point157, align 4 + %4 = alloca %struct.point157, align 4 + %5 = bitcast %struct.point157* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point157* %3 to i8* + %9 = bitcast %struct.point157* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point157* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo158(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point158, align 4 + %4 = alloca %struct.point158, align 4 + %5 = bitcast %struct.point158* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point158* %3 to i8* + %9 = bitcast %struct.point158* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point158* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo159(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point159, align 4 + %4 = alloca %struct.point159, align 4 + %5 = bitcast %struct.point159* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point159* %3 to i8* + %9 = bitcast %struct.point159* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point159* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef byval(%struct.point160) align 8 %1) #0 { + %3 = bitcast %struct.point160* %0 to i8* + %4 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef byval(%struct.point161) align 8 %1) #0 { + %3 = bitcast %struct.point161* %0 to i8* + %4 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef byval(%struct.point162) align 8 %1) #0 { + %3 = bitcast %struct.point162* %0 to i8* + %4 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef byval(%struct.point163) align 8 %1) #0 { + %3 = bitcast %struct.point163* %0 to i8* + %4 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo164(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point164, align 4 + %4 = alloca %struct.point164, align 4 + %5 = bitcast %struct.point164* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point164* %3 to i8* + %9 = bitcast %struct.point164* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point164* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef byval(%struct.point165) align 8 %1) #0 { + %3 = bitcast %struct.point165* %0 to i8* + %4 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef byval(%struct.point166) align 8 %1) #0 { + %3 = bitcast %struct.point166* %0 to i8* + %4 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef byval(%struct.point167) align 8 %1) #0 { + %3 = bitcast %struct.point167* %0 to i8* + %4 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef byval(%struct.point168) align 8 %1) #0 { + %3 = bitcast %struct.point168* %0 to i8* + %4 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo169(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point169, align 4 + %4 = alloca %struct.point169, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point169* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point169* %3 to i8* + %12 = bitcast %struct.point169* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point169* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo170(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point170, align 4 + %4 = alloca %struct.point170, align 4 + %5 = bitcast %struct.point170* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point170* %3 to i8* + %9 = bitcast %struct.point170* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point170* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo171(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point171, align 4 + %4 = alloca %struct.point171, align 4 + %5 = bitcast %struct.point171* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point171* %3 to i8* + %9 = bitcast %struct.point171* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point171* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo172(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point172, align 4 + %4 = alloca %struct.point172, align 4 + %5 = bitcast %struct.point172* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point172* %3 to i8* + %9 = bitcast %struct.point172* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point172* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef byval(%struct.point173) align 8 %1) #0 { + %3 = bitcast %struct.point173* %0 to i8* + %4 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef byval(%struct.point174) align 8 %1) #0 { + %3 = bitcast %struct.point174* %0 to i8* + %4 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo175(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point175, align 4 + %4 = alloca %struct.point175, align 4 + %5 = bitcast %struct.point175* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point175* %3 to i8* + %9 = bitcast %struct.point175* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point175* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo176(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point176, align 4 + %4 = alloca %struct.point176, align 4 + %5 = bitcast %struct.point176* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point176* %3 to i8* + %9 = bitcast %struct.point176* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point176* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo177(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point177, align 4 + %4 = alloca %struct.point177, align 4 + %5 = bitcast %struct.point177* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point177* %3 to i8* + %9 = bitcast %struct.point177* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point177* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef byval(%struct.point178) align 8 %1) #0 { + %3 = bitcast %struct.point178* %0 to i8* + %4 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef byval(%struct.point179) align 8 %1) #0 { + %3 = bitcast %struct.point179* %0 to i8* + %4 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo180(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point180, align 4 + %4 = alloca %struct.point180, align 4 + %5 = bitcast %struct.point180* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point180* %3 to i8* + %9 = bitcast %struct.point180* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point180* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef byval(%struct.point181) align 8 %1) #0 { + %3 = bitcast %struct.point181* %0 to i8* + %4 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef byval(%struct.point182) align 8 %1) #0 { + %3 = bitcast %struct.point182* %0 to i8* + %4 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef byval(%struct.point183) align 8 %1) #0 { + %3 = bitcast %struct.point183* %0 to i8* + %4 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef byval(%struct.point184) align 8 %1) #0 { + %3 = bitcast %struct.point184* %0 to i8* + %4 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo185(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point185, align 4 + %4 = alloca %struct.point185, align 4 + %5 = bitcast %struct.point185* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point185* %3 to i8* + %9 = bitcast %struct.point185* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point185* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef byval(%struct.point186) align 8 %1) #0 { + %3 = bitcast %struct.point186* %0 to i8* + %4 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef byval(%struct.point187) align 8 %1) #0 { + %3 = bitcast %struct.point187* %0 to i8* + %4 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef byval(%struct.point188) align 8 %1) #0 { + %3 = bitcast %struct.point188* %0 to i8* + %4 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef byval(%struct.point189) align 8 %1) #0 { + %3 = bitcast %struct.point189* %0 to i8* + %4 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo190(i64 %0, float %1) #0 { + %3 = alloca %struct.point190, align 4 + %4 = alloca %struct.point190, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point190* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point190* %3 to i8* + %12 = bitcast %struct.point190* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point190* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo191(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point191, align 4 + %4 = alloca %struct.point191, align 4 + %5 = bitcast %struct.point191* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point191* %3 to i8* + %9 = bitcast %struct.point191* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point191* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo192(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point192, align 4 + %4 = alloca %struct.point192, align 4 + %5 = bitcast %struct.point192* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point192* %3 to i8* + %9 = bitcast %struct.point192* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point192* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo193(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point193, align 4 + %4 = alloca %struct.point193, align 4 + %5 = bitcast %struct.point193* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point193* %3 to i8* + %9 = bitcast %struct.point193* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point193* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef byval(%struct.point194) align 8 %1) #0 { + %3 = bitcast %struct.point194* %0 to i8* + %4 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef byval(%struct.point195) align 8 %1) #0 { + %3 = bitcast %struct.point195* %0 to i8* + %4 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo196(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point196, align 4 + %4 = alloca %struct.point196, align 4 + %5 = bitcast %struct.point196* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point196* %3 to i8* + %9 = bitcast %struct.point196* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point196* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo197(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point197, align 4 + %4 = alloca %struct.point197, align 4 + %5 = bitcast %struct.point197* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point197* %3 to i8* + %9 = bitcast %struct.point197* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point197* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo198(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point198, align 4 + %4 = alloca %struct.point198, align 4 + %5 = bitcast %struct.point198* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point198* %3 to i8* + %9 = bitcast %struct.point198* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point198* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef byval(%struct.point199) align 8 %1) #0 { + %3 = bitcast %struct.point199* %0 to i8* + %4 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef byval(%struct.point200) align 8 %1) #0 { + %3 = bitcast %struct.point200* %0 to i8* + %4 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo201(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point201, align 4 + %4 = alloca %struct.point201, align 4 + %5 = bitcast %struct.point201* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point201* %3 to i8* + %9 = bitcast %struct.point201* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point201* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef byval(%struct.point202) align 8 %1) #0 { + %3 = bitcast %struct.point202* %0 to i8* + %4 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef byval(%struct.point203) align 8 %1) #0 { + %3 = bitcast %struct.point203* %0 to i8* + %4 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef byval(%struct.point204) align 8 %1) #0 { + %3 = bitcast %struct.point204* %0 to i8* + %4 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef byval(%struct.point205) align 8 %1) #0 { + %3 = bitcast %struct.point205* %0 to i8* + %4 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo206(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point206, align 4 + %4 = alloca %struct.point206, align 4 + %5 = bitcast %struct.point206* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point206* %3 to i8* + %9 = bitcast %struct.point206* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point206* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef byval(%struct.point207) align 8 %1) #0 { + %3 = bitcast %struct.point207* %0 to i8* + %4 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef byval(%struct.point208) align 8 %1) #0 { + %3 = bitcast %struct.point208* %0 to i8* + %4 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef byval(%struct.point209) align 8 %1) #0 { + %3 = bitcast %struct.point209* %0 to i8* + %4 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef byval(%struct.point210) align 8 %1) #0 { + %3 = bitcast %struct.point210* %0 to i8* + %4 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo211(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point211, align 4 + %4 = alloca %struct.point211, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point211* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point211* %3 to i8* + %12 = bitcast %struct.point211* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point211* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo212(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point212, align 4 + %4 = alloca %struct.point212, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point212* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point212* %3 to i8* + %12 = bitcast %struct.point212* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point212* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo213(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point213, align 4 + %4 = alloca %struct.point213, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point213* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point213* %3 to i8* + %12 = bitcast %struct.point213* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point213* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo214(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point214, align 4 + %4 = alloca %struct.point214, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point214* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point214* %3 to i8* + %12 = bitcast %struct.point214* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point214* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo215(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point215, align 4 + %4 = alloca %struct.point215, align 4 + %5 = bitcast %struct.point215* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point215* %3 to i8* + %9 = bitcast %struct.point215* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point215* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo216(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point216, align 4 + %4 = alloca %struct.point216, align 4 + %5 = bitcast %struct.point216* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point216* %3 to i8* + %9 = bitcast %struct.point216* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point216* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo217(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point217, align 4 + %4 = alloca %struct.point217, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point217* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point217* %3 to i8* + %12 = bitcast %struct.point217* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point217* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo218(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point218, align 4 + %4 = alloca %struct.point218, align 4 + %5 = bitcast %struct.point218* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point218* %3 to i8* + %9 = bitcast %struct.point218* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point218* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo219(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point219, align 4 + %4 = alloca %struct.point219, align 4 + %5 = bitcast %struct.point219* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point219* %3 to i8* + %9 = bitcast %struct.point219* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point219* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo220(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point220, align 4 + %4 = alloca %struct.point220, align 4 + %5 = bitcast %struct.point220* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point220* %3 to i8* + %9 = bitcast %struct.point220* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point220* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo221(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point221, align 4 + %4 = alloca %struct.point221, align 4 + %5 = bitcast %struct.point221* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point221* %3 to i8* + %9 = bitcast %struct.point221* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point221* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo222(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point222, align 4 + %4 = alloca %struct.point222, align 4 + %5 = bitcast %struct.point222* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point222* %3 to i8* + %9 = bitcast %struct.point222* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point222* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef byval(%struct.point223) align 8 %1) #0 { + %3 = bitcast %struct.point223* %0 to i8* + %4 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef byval(%struct.point224) align 8 %1) #0 { + %3 = bitcast %struct.point224* %0 to i8* + %4 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef byval(%struct.point225) align 8 %1) #0 { + %3 = bitcast %struct.point225* %0 to i8* + %4 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef byval(%struct.point226) align 8 %1) #0 { + %3 = bitcast %struct.point226* %0 to i8* + %4 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo227(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point227, align 4 + %4 = alloca %struct.point227, align 4 + %5 = bitcast %struct.point227* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point227* %3 to i8* + %9 = bitcast %struct.point227* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point227* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef byval(%struct.point228) align 8 %1) #0 { + %3 = bitcast %struct.point228* %0 to i8* + %4 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef byval(%struct.point229) align 8 %1) #0 { + %3 = bitcast %struct.point229* %0 to i8* + %4 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef byval(%struct.point230) align 8 %1) #0 { + %3 = bitcast %struct.point230* %0 to i8* + %4 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef byval(%struct.point231) align 8 %1) #0 { + %3 = bitcast %struct.point231* %0 to i8* + %4 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo232(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point232, align 4 + %4 = alloca %struct.point232, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point232* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point232* %3 to i8* + %12 = bitcast %struct.point232* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point232* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo233(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point233, align 4 + %4 = alloca %struct.point233, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point233* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point233* %3 to i8* + %12 = bitcast %struct.point233* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point233* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo234(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point234, align 4 + %4 = alloca %struct.point234, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point234* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point234* %3 to i8* + %12 = bitcast %struct.point234* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point234* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo235(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point235, align 4 + %4 = alloca %struct.point235, align 4 + %5 = bitcast %struct.point235* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point235* %3 to i8* + %9 = bitcast %struct.point235* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point235* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo236(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point236, align 4 + %4 = alloca %struct.point236, align 4 + %5 = bitcast %struct.point236* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point236* %3 to i8* + %9 = bitcast %struct.point236* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point236* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo237(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point237, align 4 + %4 = alloca %struct.point237, align 4 + %5 = bitcast %struct.point237* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point237* %3 to i8* + %9 = bitcast %struct.point237* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point237* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo238(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point238, align 4 + %4 = alloca %struct.point238, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point238* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point238* %3 to i8* + %12 = bitcast %struct.point238* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point238* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo239(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point239, align 4 + %4 = alloca %struct.point239, align 4 + %5 = bitcast %struct.point239* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point239* %3 to i8* + %9 = bitcast %struct.point239* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point239* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo240(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point240, align 4 + %4 = alloca %struct.point240, align 4 + %5 = bitcast %struct.point240* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point240* %3 to i8* + %9 = bitcast %struct.point240* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point240* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo241(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point241, align 4 + %4 = alloca %struct.point241, align 4 + %5 = bitcast %struct.point241* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point241* %3 to i8* + %9 = bitcast %struct.point241* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point241* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo242(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point242, align 4 + %4 = alloca %struct.point242, align 4 + %5 = bitcast %struct.point242* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point242* %3 to i8* + %9 = bitcast %struct.point242* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point242* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo243(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point243, align 4 + %4 = alloca %struct.point243, align 4 + %5 = bitcast %struct.point243* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point243* %3 to i8* + %9 = bitcast %struct.point243* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point243* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef byval(%struct.point244) align 8 %1) #0 { + %3 = bitcast %struct.point244* %0 to i8* + %4 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef byval(%struct.point245) align 8 %1) #0 { + %3 = bitcast %struct.point245* %0 to i8* + %4 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef byval(%struct.point246) align 8 %1) #0 { + %3 = bitcast %struct.point246* %0 to i8* + %4 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef byval(%struct.point247) align 8 %1) #0 { + %3 = bitcast %struct.point247* %0 to i8* + %4 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo248(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point248, align 4 + %4 = alloca %struct.point248, align 4 + %5 = bitcast %struct.point248* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point248* %3 to i8* + %9 = bitcast %struct.point248* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point248* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef byval(%struct.point249) align 8 %1) #0 { + %3 = bitcast %struct.point249* %0 to i8* + %4 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef byval(%struct.point250) align 8 %1) #0 { + %3 = bitcast %struct.point250* %0 to i8* + %4 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef byval(%struct.point251) align 8 %1) #0 { + %3 = bitcast %struct.point251* %0 to i8* + %4 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef byval(%struct.point252) align 8 %1) #0 { + %3 = bitcast %struct.point252* %0 to i8* + %4 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo253(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point253, align 4 + %4 = alloca %struct.point253, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point253* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point253* %3 to i8* + %12 = bitcast %struct.point253* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point253* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo254(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point254, align 4 + %4 = alloca %struct.point254, align 4 + %5 = bitcast %struct.point254* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point254* %3 to i8* + %9 = bitcast %struct.point254* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point254* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo255(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point255, align 4 + %4 = alloca %struct.point255, align 4 + %5 = bitcast %struct.point255* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point255* %3 to i8* + %9 = bitcast %struct.point255* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point255* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo256(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point256, align 4 + %4 = alloca %struct.point256, align 4 + %5 = bitcast %struct.point256* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point256* %3 to i8* + %9 = bitcast %struct.point256* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point256* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef byval(%struct.point257) align 8 %1) #0 { + %3 = bitcast %struct.point257* %0 to i8* + %4 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef byval(%struct.point258) align 8 %1) #0 { + %3 = bitcast %struct.point258* %0 to i8* + %4 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo259(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point259, align 4 + %4 = alloca %struct.point259, align 4 + %5 = bitcast %struct.point259* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point259* %3 to i8* + %9 = bitcast %struct.point259* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point259* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo260(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point260, align 4 + %4 = alloca %struct.point260, align 4 + %5 = bitcast %struct.point260* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point260* %3 to i8* + %9 = bitcast %struct.point260* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point260* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo261(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point261, align 4 + %4 = alloca %struct.point261, align 4 + %5 = bitcast %struct.point261* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point261* %3 to i8* + %9 = bitcast %struct.point261* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point261* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef byval(%struct.point262) align 8 %1) #0 { + %3 = bitcast %struct.point262* %0 to i8* + %4 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef byval(%struct.point263) align 8 %1) #0 { + %3 = bitcast %struct.point263* %0 to i8* + %4 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo264(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point264, align 4 + %4 = alloca %struct.point264, align 4 + %5 = bitcast %struct.point264* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point264* %3 to i8* + %9 = bitcast %struct.point264* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point264* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef byval(%struct.point265) align 8 %1) #0 { + %3 = bitcast %struct.point265* %0 to i8* + %4 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef byval(%struct.point266) align 8 %1) #0 { + %3 = bitcast %struct.point266* %0 to i8* + %4 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef byval(%struct.point267) align 8 %1) #0 { + %3 = bitcast %struct.point267* %0 to i8* + %4 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef byval(%struct.point268) align 8 %1) #0 { + %3 = bitcast %struct.point268* %0 to i8* + %4 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo269(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point269, align 4 + %4 = alloca %struct.point269, align 4 + %5 = bitcast %struct.point269* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point269* %3 to i8* + %9 = bitcast %struct.point269* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point269* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef byval(%struct.point270) align 8 %1) #0 { + %3 = bitcast %struct.point270* %0 to i8* + %4 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef byval(%struct.point271) align 8 %1) #0 { + %3 = bitcast %struct.point271* %0 to i8* + %4 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef byval(%struct.point272) align 8 %1) #0 { + %3 = bitcast %struct.point272* %0 to i8* + %4 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef byval(%struct.point273) align 8 %1) #0 { + %3 = bitcast %struct.point273* %0 to i8* + %4 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo274(i64 %0, float %1) #0 { + %3 = alloca %struct.point274, align 4 + %4 = alloca %struct.point274, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point274* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point274* %3 to i8* + %12 = bitcast %struct.point274* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point274* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo275(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point275, align 4 + %4 = alloca %struct.point275, align 4 + %5 = bitcast %struct.point275* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point275* %3 to i8* + %9 = bitcast %struct.point275* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point275* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo276(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point276, align 4 + %4 = alloca %struct.point276, align 4 + %5 = bitcast %struct.point276* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point276* %3 to i8* + %9 = bitcast %struct.point276* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point276* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo277(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point277, align 4 + %4 = alloca %struct.point277, align 4 + %5 = bitcast %struct.point277* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point277* %3 to i8* + %9 = bitcast %struct.point277* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point277* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef byval(%struct.point278) align 8 %1) #0 { + %3 = bitcast %struct.point278* %0 to i8* + %4 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef byval(%struct.point279) align 8 %1) #0 { + %3 = bitcast %struct.point279* %0 to i8* + %4 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo280(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point280, align 4 + %4 = alloca %struct.point280, align 4 + %5 = bitcast %struct.point280* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point280* %3 to i8* + %9 = bitcast %struct.point280* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point280* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo281(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point281, align 4 + %4 = alloca %struct.point281, align 4 + %5 = bitcast %struct.point281* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point281* %3 to i8* + %9 = bitcast %struct.point281* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point281* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo282(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point282, align 4 + %4 = alloca %struct.point282, align 4 + %5 = bitcast %struct.point282* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point282* %3 to i8* + %9 = bitcast %struct.point282* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point282* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef byval(%struct.point283) align 8 %1) #0 { + %3 = bitcast %struct.point283* %0 to i8* + %4 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef byval(%struct.point284) align 8 %1) #0 { + %3 = bitcast %struct.point284* %0 to i8* + %4 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo285(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point285, align 4 + %4 = alloca %struct.point285, align 4 + %5 = bitcast %struct.point285* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point285* %3 to i8* + %9 = bitcast %struct.point285* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point285* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef byval(%struct.point286) align 8 %1) #0 { + %3 = bitcast %struct.point286* %0 to i8* + %4 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef byval(%struct.point287) align 8 %1) #0 { + %3 = bitcast %struct.point287* %0 to i8* + %4 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef byval(%struct.point288) align 8 %1) #0 { + %3 = bitcast %struct.point288* %0 to i8* + %4 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef byval(%struct.point289) align 8 %1) #0 { + %3 = bitcast %struct.point289* %0 to i8* + %4 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo290(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point290, align 4 + %4 = alloca %struct.point290, align 4 + %5 = bitcast %struct.point290* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point290* %3 to i8* + %9 = bitcast %struct.point290* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point290* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef byval(%struct.point291) align 8 %1) #0 { + %3 = bitcast %struct.point291* %0 to i8* + %4 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef byval(%struct.point292) align 8 %1) #0 { + %3 = bitcast %struct.point292* %0 to i8* + %4 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef byval(%struct.point293) align 8 %1) #0 { + %3 = bitcast %struct.point293* %0 to i8* + %4 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef byval(%struct.point294) align 8 %1) #0 { + %3 = bitcast %struct.point294* %0 to i8* + %4 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo295(i32 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = bitcast %struct.point295* %3 to i32* + store i32 %0, i32* %4, align 2 + %5 = bitcast %struct.point295* %2 to i8* + %6 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 4, i1 false) + %7 = bitcast %struct.point295* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo296(i48 %0) #0 { + %2 = alloca %struct.point296, align 2 + %3 = alloca %struct.point296, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo297(i48 %0) #0 { + %2 = alloca %struct.point297, align 2 + %3 = alloca %struct.point297, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo298(i64 %0) #0 { + %2 = alloca %struct.point298, align 2 + %3 = alloca %struct.point298, align 2 + %4 = bitcast %struct.point298* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point298* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo299(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point299, align 4 + %4 = alloca %struct.point299, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point299* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point299* %3 to i8* + %12 = bitcast %struct.point299* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point299* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo300(i64 %0, float %1) #0 { + %3 = alloca %struct.point300, align 4 + %4 = alloca %struct.point300, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point300* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point300* %3 to i8* + %12 = bitcast %struct.point300* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point300* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo301(i48 %0) #0 { + %2 = alloca %struct.point301, align 2 + %3 = alloca %struct.point301, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo302(i64 %0) #0 { + %2 = alloca %struct.point302, align 2 + %3 = alloca %struct.point302, align 2 + %4 = bitcast %struct.point302* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point302* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo303(i64 %0) #0 { + %2 = alloca %struct.point303, align 2 + %3 = alloca %struct.point303, align 2 + %4 = bitcast %struct.point303* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point303* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo304(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point304, align 4 + %4 = alloca %struct.point304, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point304* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point304* %3 to i8* + %12 = bitcast %struct.point304* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point304* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo305(i64 %0, float %1) #0 { + %3 = alloca %struct.point305, align 4 + %4 = alloca %struct.point305, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point305* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point305* %3 to i8* + %12 = bitcast %struct.point305* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point305* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo306(i64 %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point306* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo307(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point307, align 4 + %4 = alloca %struct.point307, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point307* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point307* %3 to i8* + %12 = bitcast %struct.point307* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point307* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo308(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point308, align 4 + %4 = alloca %struct.point308, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point308* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point308* %3 to i8* + %12 = bitcast %struct.point308* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point308* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo309(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point309, align 4 + %4 = alloca %struct.point309, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point309* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point309* %3 to i8* + %12 = bitcast %struct.point309* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point309* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo310(i64 %0, float %1) #0 { + %3 = alloca %struct.point310, align 4 + %4 = alloca %struct.point310, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point310* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point310* %3 to i8* + %12 = bitcast %struct.point310* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point310* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo311(i64 %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point311* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo312(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point312, align 4 + %4 = alloca %struct.point312, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point312* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point312* %3 to i8* + %12 = bitcast %struct.point312* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point312* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo313(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point313, align 4 + %4 = alloca %struct.point313, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point313* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point313* %3 to i8* + %12 = bitcast %struct.point313* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point313* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo314(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point314, align 4 + %4 = alloca %struct.point314, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point314* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point314* %3 to i8* + %12 = bitcast %struct.point314* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point314* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo315(i64 %0, float %1) #0 { + %3 = alloca %struct.point315, align 4 + %4 = alloca %struct.point315, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point315* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point315* %3 to i8* + %12 = bitcast %struct.point315* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point315* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo316(i48 %0) #0 { + %2 = alloca %struct.point316, align 2 + %3 = alloca %struct.point316, align 2 + %4 = alloca i48, align 8 + %5 = alloca i48, align 8 + store i48 %0, i48* %4, align 8 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast i48* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo317(i64 %0) #0 { + %2 = alloca %struct.point317, align 2 + %3 = alloca %struct.point317, align 2 + %4 = bitcast %struct.point317* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point317* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo318(i64 %0) #0 { + %2 = alloca %struct.point318, align 2 + %3 = alloca %struct.point318, align 2 + %4 = bitcast %struct.point318* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point318* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo319(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point319, align 2 + %4 = alloca %struct.point319, align 2 + %5 = alloca { i64, i16 }, align 2 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 2 + %9 = bitcast %struct.point319* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point319* %3 to i8* + %12 = bitcast %struct.point319* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point319* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo320(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point320, align 4 + %4 = alloca %struct.point320, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point320* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point320* %3 to i8* + %12 = bitcast %struct.point320* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point320* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo321(i64 %0, float %1) #0 { + %3 = alloca %struct.point321, align 4 + %4 = alloca %struct.point321, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point321* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point321* %3 to i8* + %12 = bitcast %struct.point321* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point321* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo322(i64 %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point322* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo323(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point323, align 2 + %4 = alloca %struct.point323, align 2 + %5 = alloca { i64, i8 }, align 2 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 2 + %9 = bitcast %struct.point323* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point323* %3 to i8* + %12 = bitcast %struct.point323* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point323* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo324(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point324, align 2 + %4 = alloca %struct.point324, align 2 + %5 = alloca { i64, i16 }, align 2 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 2 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 2 + %9 = bitcast %struct.point324* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = bitcast %struct.point324* %3 to i8* + %12 = bitcast %struct.point324* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %11, i8* align 2 %12, i64 10, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point324* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 2 %14, i64 10, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo325(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point325, align 4 + %4 = alloca %struct.point325, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point325* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point325* %3 to i8* + %12 = bitcast %struct.point325* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point325* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo326(i64 %0, float %1) #0 { + %3 = alloca %struct.point326, align 4 + %4 = alloca %struct.point326, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point326* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point326* %3 to i8* + %12 = bitcast %struct.point326* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point326* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo327(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point327, align 4 + %4 = alloca %struct.point327, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point327* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point327* %3 to i8* + %12 = bitcast %struct.point327* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point327* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo328(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point328, align 4 + %4 = alloca %struct.point328, align 4 + %5 = bitcast %struct.point328* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point328* %3 to i8* + %9 = bitcast %struct.point328* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point328* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo329(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point329, align 4 + %4 = alloca %struct.point329, align 4 + %5 = bitcast %struct.point329* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point329* %3 to i8* + %9 = bitcast %struct.point329* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point329* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo330(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point330, align 4 + %4 = alloca %struct.point330, align 4 + %5 = bitcast %struct.point330* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point330* %3 to i8* + %9 = bitcast %struct.point330* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point330* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo331(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point331, align 4 + %4 = alloca %struct.point331, align 4 + %5 = bitcast %struct.point331* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point331* %3 to i8* + %9 = bitcast %struct.point331* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point331* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo332(i64 %0, float %1) #0 { + %3 = alloca %struct.point332, align 4 + %4 = alloca %struct.point332, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point332* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point332* %3 to i8* + %12 = bitcast %struct.point332* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point332* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo333(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point333, align 4 + %4 = alloca %struct.point333, align 4 + %5 = bitcast %struct.point333* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point333* %3 to i8* + %9 = bitcast %struct.point333* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point333* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo334(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point334, align 4 + %4 = alloca %struct.point334, align 4 + %5 = bitcast %struct.point334* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point334* %3 to i8* + %9 = bitcast %struct.point334* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point334* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo335(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point335, align 4 + %4 = alloca %struct.point335, align 4 + %5 = bitcast %struct.point335* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point335* %3 to i8* + %9 = bitcast %struct.point335* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point335* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo336(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point336, align 4 + %4 = alloca %struct.point336, align 4 + %5 = bitcast %struct.point336* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point336* %3 to i8* + %9 = bitcast %struct.point336* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point336* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo337(i64 %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point337* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo338(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point338, align 4 + %4 = alloca %struct.point338, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point338* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point338* %3 to i8* + %12 = bitcast %struct.point338* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point338* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo339(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point339, align 4 + %4 = alloca %struct.point339, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point339* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point339* %3 to i8* + %12 = bitcast %struct.point339* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point339* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo340(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point340, align 4 + %4 = alloca %struct.point340, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point340* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point340* %3 to i8* + %12 = bitcast %struct.point340* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point340* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo341(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point341, align 4 + %4 = alloca %struct.point341, align 4 + %5 = bitcast %struct.point341* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point341* %3 to i8* + %9 = bitcast %struct.point341* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point341* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo342(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point342, align 4 + %4 = alloca %struct.point342, align 4 + %5 = bitcast %struct.point342* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point342* %3 to i8* + %9 = bitcast %struct.point342* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point342* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo343(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point343, align 4 + %4 = alloca %struct.point343, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point343* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point343* %3 to i8* + %12 = bitcast %struct.point343* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point343* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo344(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point344, align 4 + %4 = alloca %struct.point344, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point344* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point344* %3 to i8* + %12 = bitcast %struct.point344* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point344* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo345(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point345, align 4 + %4 = alloca %struct.point345, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point345* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point345* %3 to i8* + %12 = bitcast %struct.point345* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point345* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo346(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point346, align 4 + %4 = alloca %struct.point346, align 4 + %5 = bitcast %struct.point346* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point346* %3 to i8* + %9 = bitcast %struct.point346* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point346* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo347(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point347, align 4 + %4 = alloca %struct.point347, align 4 + %5 = bitcast %struct.point347* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point347* %3 to i8* + %9 = bitcast %struct.point347* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point347* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo348(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point348, align 4 + %4 = alloca %struct.point348, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point348* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point348* %3 to i8* + %12 = bitcast %struct.point348* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point348* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo349(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point349, align 4 + %4 = alloca %struct.point349, align 4 + %5 = bitcast %struct.point349* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point349* %3 to i8* + %9 = bitcast %struct.point349* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point349* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo350(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point350, align 4 + %4 = alloca %struct.point350, align 4 + %5 = bitcast %struct.point350* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point350* %3 to i8* + %9 = bitcast %struct.point350* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point350* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo351(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point351, align 4 + %4 = alloca %struct.point351, align 4 + %5 = bitcast %struct.point351* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point351* %3 to i8* + %9 = bitcast %struct.point351* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point351* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo352(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point352, align 4 + %4 = alloca %struct.point352, align 4 + %5 = bitcast %struct.point352* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point352* %3 to i8* + %9 = bitcast %struct.point352* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point352* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo353(i64 %0, float %1) #0 { + %3 = alloca %struct.point353, align 4 + %4 = alloca %struct.point353, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point353* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point353* %3 to i8* + %12 = bitcast %struct.point353* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point353* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo354(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point354, align 4 + %4 = alloca %struct.point354, align 4 + %5 = bitcast %struct.point354* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point354* %3 to i8* + %9 = bitcast %struct.point354* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point354* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo355(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point355, align 4 + %4 = alloca %struct.point355, align 4 + %5 = bitcast %struct.point355* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point355* %3 to i8* + %9 = bitcast %struct.point355* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point355* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo356(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point356, align 4 + %4 = alloca %struct.point356, align 4 + %5 = bitcast %struct.point356* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point356* %3 to i8* + %9 = bitcast %struct.point356* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point356* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo357(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point357, align 4 + %4 = alloca %struct.point357, align 4 + %5 = bitcast %struct.point357* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point357* %3 to i8* + %9 = bitcast %struct.point357* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point357* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo358(i64 %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point358* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo359(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point359, align 4 + %4 = alloca %struct.point359, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point359* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point359* %3 to i8* + %12 = bitcast %struct.point359* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point359* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo360(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point360, align 4 + %4 = alloca %struct.point360, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point360* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point360* %3 to i8* + %12 = bitcast %struct.point360* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point360* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo361(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point361, align 4 + %4 = alloca %struct.point361, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point361* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point361* %3 to i8* + %12 = bitcast %struct.point361* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point361* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo362(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point362, align 4 + %4 = alloca %struct.point362, align 4 + %5 = bitcast %struct.point362* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point362* %3 to i8* + %9 = bitcast %struct.point362* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point362* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo363(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point363, align 4 + %4 = alloca %struct.point363, align 4 + %5 = bitcast %struct.point363* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point363* %3 to i8* + %9 = bitcast %struct.point363* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point363* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo364(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point364, align 4 + %4 = alloca %struct.point364, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point364* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point364* %3 to i8* + %12 = bitcast %struct.point364* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point364* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo365(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point365, align 4 + %4 = alloca %struct.point365, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point365* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point365* %3 to i8* + %12 = bitcast %struct.point365* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point365* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo366(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point366, align 4 + %4 = alloca %struct.point366, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point366* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point366* %3 to i8* + %12 = bitcast %struct.point366* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point366* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo367(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point367, align 4 + %4 = alloca %struct.point367, align 4 + %5 = bitcast %struct.point367* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point367* %3 to i8* + %9 = bitcast %struct.point367* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point367* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo368(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point368, align 4 + %4 = alloca %struct.point368, align 4 + %5 = bitcast %struct.point368* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point368* %3 to i8* + %9 = bitcast %struct.point368* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point368* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo369(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point369, align 4 + %4 = alloca %struct.point369, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point369* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point369* %3 to i8* + %12 = bitcast %struct.point369* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point369* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo370(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point370, align 4 + %4 = alloca %struct.point370, align 4 + %5 = bitcast %struct.point370* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point370* %3 to i8* + %9 = bitcast %struct.point370* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point370* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo371(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point371, align 4 + %4 = alloca %struct.point371, align 4 + %5 = bitcast %struct.point371* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point371* %3 to i8* + %9 = bitcast %struct.point371* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point371* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo372(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point372, align 4 + %4 = alloca %struct.point372, align 4 + %5 = bitcast %struct.point372* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point372* %3 to i8* + %9 = bitcast %struct.point372* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point372* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo373(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point373, align 4 + %4 = alloca %struct.point373, align 4 + %5 = bitcast %struct.point373* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point373* %3 to i8* + %9 = bitcast %struct.point373* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point373* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo374(i64 %0, float %1) #0 { + %3 = alloca %struct.point374, align 4 + %4 = alloca %struct.point374, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point374* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point374* %3 to i8* + %12 = bitcast %struct.point374* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point374* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo375(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point375, align 4 + %4 = alloca %struct.point375, align 4 + %5 = bitcast %struct.point375* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point375* %3 to i8* + %9 = bitcast %struct.point375* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point375* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo376(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point376, align 4 + %4 = alloca %struct.point376, align 4 + %5 = bitcast %struct.point376* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point376* %3 to i8* + %9 = bitcast %struct.point376* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point376* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo377(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point377, align 4 + %4 = alloca %struct.point377, align 4 + %5 = bitcast %struct.point377* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point377* %3 to i8* + %9 = bitcast %struct.point377* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point377* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo378(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point378, align 4 + %4 = alloca %struct.point378, align 4 + %5 = bitcast %struct.point378* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point378* %3 to i8* + %9 = bitcast %struct.point378* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point378* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo379(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point379, align 4 + %4 = alloca %struct.point379, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point379* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point379* %3 to i8* + %12 = bitcast %struct.point379* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point379* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo380(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point380, align 4 + %4 = alloca %struct.point380, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point380* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point380* %3 to i8* + %12 = bitcast %struct.point380* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point380* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo381(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point381, align 4 + %4 = alloca %struct.point381, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point381* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point381* %3 to i8* + %12 = bitcast %struct.point381* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point381* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo382(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point382, align 4 + %4 = alloca %struct.point382, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point382* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point382* %3 to i8* + %12 = bitcast %struct.point382* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point382* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo383(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point383, align 4 + %4 = alloca %struct.point383, align 4 + %5 = bitcast %struct.point383* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point383* %3 to i8* + %9 = bitcast %struct.point383* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point383* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo384(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point384, align 4 + %4 = alloca %struct.point384, align 4 + %5 = bitcast %struct.point384* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point384* %3 to i8* + %9 = bitcast %struct.point384* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point384* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo385(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point385, align 4 + %4 = alloca %struct.point385, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point385* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point385* %3 to i8* + %12 = bitcast %struct.point385* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point385* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo386(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point386, align 4 + %4 = alloca %struct.point386, align 4 + %5 = bitcast %struct.point386* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point386* %3 to i8* + %9 = bitcast %struct.point386* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point386* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo387(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point387, align 4 + %4 = alloca %struct.point387, align 4 + %5 = bitcast %struct.point387* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point387* %3 to i8* + %9 = bitcast %struct.point387* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point387* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo388(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point388, align 4 + %4 = alloca %struct.point388, align 4 + %5 = bitcast %struct.point388* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point388* %3 to i8* + %9 = bitcast %struct.point388* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point388* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo389(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point389, align 4 + %4 = alloca %struct.point389, align 4 + %5 = bitcast %struct.point389* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point389* %3 to i8* + %9 = bitcast %struct.point389* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point389* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo390(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point390, align 4 + %4 = alloca %struct.point390, align 4 + %5 = bitcast %struct.point390* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point390* %3 to i8* + %9 = bitcast %struct.point390* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point390* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef byval(%struct.point391) align 8 %1) #0 { + %3 = bitcast %struct.point391* %0 to i8* + %4 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef byval(%struct.point392) align 8 %1) #0 { + %3 = bitcast %struct.point392* %0 to i8* + %4 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef byval(%struct.point393) align 8 %1) #0 { + %3 = bitcast %struct.point393* %0 to i8* + %4 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef byval(%struct.point394) align 8 %1) #0 { + %3 = bitcast %struct.point394* %0 to i8* + %4 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo395(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point395, align 4 + %4 = alloca %struct.point395, align 4 + %5 = bitcast %struct.point395* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point395* %3 to i8* + %9 = bitcast %struct.point395* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point395* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef byval(%struct.point396) align 8 %1) #0 { + %3 = bitcast %struct.point396* %0 to i8* + %4 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef byval(%struct.point397) align 8 %1) #0 { + %3 = bitcast %struct.point397* %0 to i8* + %4 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef byval(%struct.point398) align 8 %1) #0 { + %3 = bitcast %struct.point398* %0 to i8* + %4 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef byval(%struct.point399) align 8 %1) #0 { + %3 = bitcast %struct.point399* %0 to i8* + %4 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo400(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point400, align 4 + %4 = alloca %struct.point400, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point400* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point400* %3 to i8* + %12 = bitcast %struct.point400* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point400* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo401(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point401, align 4 + %4 = alloca %struct.point401, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point401* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point401* %3 to i8* + %12 = bitcast %struct.point401* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point401* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo402(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point402, align 4 + %4 = alloca %struct.point402, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point402* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point402* %3 to i8* + %12 = bitcast %struct.point402* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point402* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo403(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point403, align 4 + %4 = alloca %struct.point403, align 4 + %5 = bitcast %struct.point403* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point403* %3 to i8* + %9 = bitcast %struct.point403* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point403* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo404(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point404, align 4 + %4 = alloca %struct.point404, align 4 + %5 = bitcast %struct.point404* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point404* %3 to i8* + %9 = bitcast %struct.point404* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point404* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo405(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point405, align 4 + %4 = alloca %struct.point405, align 4 + %5 = bitcast %struct.point405* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point405* %3 to i8* + %9 = bitcast %struct.point405* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point405* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo406(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point406, align 4 + %4 = alloca %struct.point406, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point406* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point406* %3 to i8* + %12 = bitcast %struct.point406* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point406* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo407(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point407, align 4 + %4 = alloca %struct.point407, align 4 + %5 = bitcast %struct.point407* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point407* %3 to i8* + %9 = bitcast %struct.point407* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point407* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo408(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point408, align 4 + %4 = alloca %struct.point408, align 4 + %5 = bitcast %struct.point408* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point408* %3 to i8* + %9 = bitcast %struct.point408* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point408* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo409(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point409, align 4 + %4 = alloca %struct.point409, align 4 + %5 = bitcast %struct.point409* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point409* %3 to i8* + %9 = bitcast %struct.point409* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point409* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo410(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point410, align 4 + %4 = alloca %struct.point410, align 4 + %5 = bitcast %struct.point410* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point410* %3 to i8* + %9 = bitcast %struct.point410* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point410* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo411(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point411, align 4 + %4 = alloca %struct.point411, align 4 + %5 = bitcast %struct.point411* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point411* %3 to i8* + %9 = bitcast %struct.point411* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point411* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef byval(%struct.point412) align 8 %1) #0 { + %3 = bitcast %struct.point412* %0 to i8* + %4 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef byval(%struct.point413) align 8 %1) #0 { + %3 = bitcast %struct.point413* %0 to i8* + %4 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef byval(%struct.point414) align 8 %1) #0 { + %3 = bitcast %struct.point414* %0 to i8* + %4 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef byval(%struct.point415) align 8 %1) #0 { + %3 = bitcast %struct.point415* %0 to i8* + %4 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo416(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point416, align 4 + %4 = alloca %struct.point416, align 4 + %5 = bitcast %struct.point416* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point416* %3 to i8* + %9 = bitcast %struct.point416* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point416* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef byval(%struct.point417) align 8 %1) #0 { + %3 = bitcast %struct.point417* %0 to i8* + %4 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef byval(%struct.point418) align 8 %1) #0 { + %3 = bitcast %struct.point418* %0 to i8* + %4 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef byval(%struct.point419) align 8 %1) #0 { + %3 = bitcast %struct.point419* %0 to i8* + %4 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef byval(%struct.point420) align 8 %1) #0 { + %3 = bitcast %struct.point420* %0 to i8* + %4 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo421(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point421, align 4 + %4 = alloca %struct.point421, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point421* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point421* %3 to i8* + %12 = bitcast %struct.point421* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point421* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo422(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point422, align 4 + %4 = alloca %struct.point422, align 4 + %5 = bitcast %struct.point422* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point422* %3 to i8* + %9 = bitcast %struct.point422* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point422* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo423(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point423, align 4 + %4 = alloca %struct.point423, align 4 + %5 = bitcast %struct.point423* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point423* %3 to i8* + %9 = bitcast %struct.point423* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point423* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo424(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point424, align 4 + %4 = alloca %struct.point424, align 4 + %5 = bitcast %struct.point424* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point424* %3 to i8* + %9 = bitcast %struct.point424* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point424* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef byval(%struct.point425) align 8 %1) #0 { + %3 = bitcast %struct.point425* %0 to i8* + %4 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef byval(%struct.point426) align 8 %1) #0 { + %3 = bitcast %struct.point426* %0 to i8* + %4 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo427(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point427, align 4 + %4 = alloca %struct.point427, align 4 + %5 = bitcast %struct.point427* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point427* %3 to i8* + %9 = bitcast %struct.point427* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point427* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo428(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point428, align 4 + %4 = alloca %struct.point428, align 4 + %5 = bitcast %struct.point428* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point428* %3 to i8* + %9 = bitcast %struct.point428* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point428* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo429(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point429, align 4 + %4 = alloca %struct.point429, align 4 + %5 = bitcast %struct.point429* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point429* %3 to i8* + %9 = bitcast %struct.point429* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point429* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef byval(%struct.point430) align 8 %1) #0 { + %3 = bitcast %struct.point430* %0 to i8* + %4 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef byval(%struct.point431) align 8 %1) #0 { + %3 = bitcast %struct.point431* %0 to i8* + %4 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo432(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point432, align 4 + %4 = alloca %struct.point432, align 4 + %5 = bitcast %struct.point432* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point432* %3 to i8* + %9 = bitcast %struct.point432* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point432* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef byval(%struct.point433) align 8 %1) #0 { + %3 = bitcast %struct.point433* %0 to i8* + %4 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef byval(%struct.point434) align 8 %1) #0 { + %3 = bitcast %struct.point434* %0 to i8* + %4 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef byval(%struct.point435) align 8 %1) #0 { + %3 = bitcast %struct.point435* %0 to i8* + %4 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef byval(%struct.point436) align 8 %1) #0 { + %3 = bitcast %struct.point436* %0 to i8* + %4 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo437(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point437, align 4 + %4 = alloca %struct.point437, align 4 + %5 = bitcast %struct.point437* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point437* %3 to i8* + %9 = bitcast %struct.point437* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point437* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef byval(%struct.point438) align 8 %1) #0 { + %3 = bitcast %struct.point438* %0 to i8* + %4 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef byval(%struct.point439) align 8 %1) #0 { + %3 = bitcast %struct.point439* %0 to i8* + %4 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef byval(%struct.point440) align 8 %1) #0 { + %3 = bitcast %struct.point440* %0 to i8* + %4 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef byval(%struct.point441) align 8 %1) #0 { + %3 = bitcast %struct.point441* %0 to i8* + %4 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo442(i64 %0, float %1) #0 { + %3 = alloca %struct.point442, align 4 + %4 = alloca %struct.point442, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point442* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point442* %3 to i8* + %12 = bitcast %struct.point442* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point442* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo443(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point443, align 4 + %4 = alloca %struct.point443, align 4 + %5 = bitcast %struct.point443* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point443* %3 to i8* + %9 = bitcast %struct.point443* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point443* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo444(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point444, align 4 + %4 = alloca %struct.point444, align 4 + %5 = bitcast %struct.point444* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point444* %3 to i8* + %9 = bitcast %struct.point444* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point444* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo445(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point445, align 4 + %4 = alloca %struct.point445, align 4 + %5 = bitcast %struct.point445* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point445* %3 to i8* + %9 = bitcast %struct.point445* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point445* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef byval(%struct.point446) align 8 %1) #0 { + %3 = bitcast %struct.point446* %0 to i8* + %4 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef byval(%struct.point447) align 8 %1) #0 { + %3 = bitcast %struct.point447* %0 to i8* + %4 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo448(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point448, align 4 + %4 = alloca %struct.point448, align 4 + %5 = bitcast %struct.point448* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point448* %3 to i8* + %9 = bitcast %struct.point448* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point448* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo449(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point449, align 4 + %4 = alloca %struct.point449, align 4 + %5 = bitcast %struct.point449* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point449* %3 to i8* + %9 = bitcast %struct.point449* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point449* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo450(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point450, align 4 + %4 = alloca %struct.point450, align 4 + %5 = bitcast %struct.point450* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point450* %3 to i8* + %9 = bitcast %struct.point450* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point450* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef byval(%struct.point451) align 8 %1) #0 { + %3 = bitcast %struct.point451* %0 to i8* + %4 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef byval(%struct.point452) align 8 %1) #0 { + %3 = bitcast %struct.point452* %0 to i8* + %4 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo453(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point453, align 4 + %4 = alloca %struct.point453, align 4 + %5 = bitcast %struct.point453* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point453* %3 to i8* + %9 = bitcast %struct.point453* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point453* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef byval(%struct.point454) align 8 %1) #0 { + %3 = bitcast %struct.point454* %0 to i8* + %4 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef byval(%struct.point455) align 8 %1) #0 { + %3 = bitcast %struct.point455* %0 to i8* + %4 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef byval(%struct.point456) align 8 %1) #0 { + %3 = bitcast %struct.point456* %0 to i8* + %4 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef byval(%struct.point457) align 8 %1) #0 { + %3 = bitcast %struct.point457* %0 to i8* + %4 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo458(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point458, align 4 + %4 = alloca %struct.point458, align 4 + %5 = bitcast %struct.point458* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point458* %3 to i8* + %9 = bitcast %struct.point458* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point458* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef byval(%struct.point459) align 8 %1) #0 { + %3 = bitcast %struct.point459* %0 to i8* + %4 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef byval(%struct.point460) align 8 %1) #0 { + %3 = bitcast %struct.point460* %0 to i8* + %4 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef byval(%struct.point461) align 8 %1) #0 { + %3 = bitcast %struct.point461* %0 to i8* + %4 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef byval(%struct.point462) align 8 %1) #0 { + %3 = bitcast %struct.point462* %0 to i8* + %4 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo463(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point463, align 4 + %4 = alloca %struct.point463, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point463* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point463* %3 to i8* + %12 = bitcast %struct.point463* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point463* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo464(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point464, align 4 + %4 = alloca %struct.point464, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point464* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point464* %3 to i8* + %12 = bitcast %struct.point464* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point464* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo465(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point465, align 4 + %4 = alloca %struct.point465, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point465* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point465* %3 to i8* + %12 = bitcast %struct.point465* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point465* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo466(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point466, align 4 + %4 = alloca %struct.point466, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point466* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point466* %3 to i8* + %12 = bitcast %struct.point466* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point466* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo467(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point467, align 4 + %4 = alloca %struct.point467, align 4 + %5 = bitcast %struct.point467* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point467* %3 to i8* + %9 = bitcast %struct.point467* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point467* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo468(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point468, align 4 + %4 = alloca %struct.point468, align 4 + %5 = bitcast %struct.point468* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point468* %3 to i8* + %9 = bitcast %struct.point468* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point468* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo469(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point469, align 4 + %4 = alloca %struct.point469, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point469* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point469* %3 to i8* + %12 = bitcast %struct.point469* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point469* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo470(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point470, align 4 + %4 = alloca %struct.point470, align 4 + %5 = bitcast %struct.point470* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point470* %3 to i8* + %9 = bitcast %struct.point470* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point470* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo471(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point471, align 4 + %4 = alloca %struct.point471, align 4 + %5 = bitcast %struct.point471* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point471* %3 to i8* + %9 = bitcast %struct.point471* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point471* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo472(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point472, align 4 + %4 = alloca %struct.point472, align 4 + %5 = bitcast %struct.point472* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point472* %3 to i8* + %9 = bitcast %struct.point472* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point472* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo473(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point473, align 4 + %4 = alloca %struct.point473, align 4 + %5 = bitcast %struct.point473* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point473* %3 to i8* + %9 = bitcast %struct.point473* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point473* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo474(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point474, align 4 + %4 = alloca %struct.point474, align 4 + %5 = bitcast %struct.point474* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point474* %3 to i8* + %9 = bitcast %struct.point474* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point474* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef byval(%struct.point475) align 8 %1) #0 { + %3 = bitcast %struct.point475* %0 to i8* + %4 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef byval(%struct.point476) align 8 %1) #0 { + %3 = bitcast %struct.point476* %0 to i8* + %4 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef byval(%struct.point477) align 8 %1) #0 { + %3 = bitcast %struct.point477* %0 to i8* + %4 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef byval(%struct.point478) align 8 %1) #0 { + %3 = bitcast %struct.point478* %0 to i8* + %4 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo479(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point479, align 4 + %4 = alloca %struct.point479, align 4 + %5 = bitcast %struct.point479* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point479* %3 to i8* + %9 = bitcast %struct.point479* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point479* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef byval(%struct.point480) align 8 %1) #0 { + %3 = bitcast %struct.point480* %0 to i8* + %4 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef byval(%struct.point481) align 8 %1) #0 { + %3 = bitcast %struct.point481* %0 to i8* + %4 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef byval(%struct.point482) align 8 %1) #0 { + %3 = bitcast %struct.point482* %0 to i8* + %4 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef byval(%struct.point483) align 8 %1) #0 { + %3 = bitcast %struct.point483* %0 to i8* + %4 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo484(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point484, align 4 + %4 = alloca %struct.point484, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point484* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point484* %3 to i8* + %12 = bitcast %struct.point484* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point484* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo485(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point485, align 4 + %4 = alloca %struct.point485, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point485* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point485* %3 to i8* + %12 = bitcast %struct.point485* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point485* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo486(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point486, align 4 + %4 = alloca %struct.point486, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point486* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point486* %3 to i8* + %12 = bitcast %struct.point486* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point486* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo487(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point487, align 4 + %4 = alloca %struct.point487, align 4 + %5 = bitcast %struct.point487* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point487* %3 to i8* + %9 = bitcast %struct.point487* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point487* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo488(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point488, align 4 + %4 = alloca %struct.point488, align 4 + %5 = bitcast %struct.point488* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point488* %3 to i8* + %9 = bitcast %struct.point488* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point488* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo489(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point489, align 4 + %4 = alloca %struct.point489, align 4 + %5 = bitcast %struct.point489* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point489* %3 to i8* + %9 = bitcast %struct.point489* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point489* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo490(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point490, align 4 + %4 = alloca %struct.point490, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point490* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point490* %3 to i8* + %12 = bitcast %struct.point490* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point490* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo491(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point491, align 4 + %4 = alloca %struct.point491, align 4 + %5 = bitcast %struct.point491* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point491* %3 to i8* + %9 = bitcast %struct.point491* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point491* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo492(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point492, align 4 + %4 = alloca %struct.point492, align 4 + %5 = bitcast %struct.point492* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point492* %3 to i8* + %9 = bitcast %struct.point492* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point492* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo493(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point493, align 4 + %4 = alloca %struct.point493, align 4 + %5 = bitcast %struct.point493* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point493* %3 to i8* + %9 = bitcast %struct.point493* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point493* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo494(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point494, align 4 + %4 = alloca %struct.point494, align 4 + %5 = bitcast %struct.point494* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point494* %3 to i8* + %9 = bitcast %struct.point494* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point494* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo495(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point495, align 4 + %4 = alloca %struct.point495, align 4 + %5 = bitcast %struct.point495* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point495* %3 to i8* + %9 = bitcast %struct.point495* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point495* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef byval(%struct.point496) align 8 %1) #0 { + %3 = bitcast %struct.point496* %0 to i8* + %4 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef byval(%struct.point497) align 8 %1) #0 { + %3 = bitcast %struct.point497* %0 to i8* + %4 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef byval(%struct.point498) align 8 %1) #0 { + %3 = bitcast %struct.point498* %0 to i8* + %4 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef byval(%struct.point499) align 8 %1) #0 { + %3 = bitcast %struct.point499* %0 to i8* + %4 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo500(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point500, align 4 + %4 = alloca %struct.point500, align 4 + %5 = bitcast %struct.point500* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point500* %3 to i8* + %9 = bitcast %struct.point500* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point500* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef byval(%struct.point501) align 8 %1) #0 { + %3 = bitcast %struct.point501* %0 to i8* + %4 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef byval(%struct.point502) align 8 %1) #0 { + %3 = bitcast %struct.point502* %0 to i8* + %4 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef byval(%struct.point503) align 8 %1) #0 { + %3 = bitcast %struct.point503* %0 to i8* + %4 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef byval(%struct.point504) align 8 %1) #0 { + %3 = bitcast %struct.point504* %0 to i8* + %4 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo505(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point505, align 4 + %4 = alloca %struct.point505, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point505* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point505* %3 to i8* + %12 = bitcast %struct.point505* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point505* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo506(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point506, align 4 + %4 = alloca %struct.point506, align 4 + %5 = bitcast %struct.point506* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point506* %3 to i8* + %9 = bitcast %struct.point506* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point506* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo507(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point507, align 4 + %4 = alloca %struct.point507, align 4 + %5 = bitcast %struct.point507* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point507* %3 to i8* + %9 = bitcast %struct.point507* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point507* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo508(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point508, align 4 + %4 = alloca %struct.point508, align 4 + %5 = bitcast %struct.point508* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point508* %3 to i8* + %9 = bitcast %struct.point508* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point508* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef byval(%struct.point509) align 8 %1) #0 { + %3 = bitcast %struct.point509* %0 to i8* + %4 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef byval(%struct.point510) align 8 %1) #0 { + %3 = bitcast %struct.point510* %0 to i8* + %4 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo511(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point511, align 4 + %4 = alloca %struct.point511, align 4 + %5 = bitcast %struct.point511* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point511* %3 to i8* + %9 = bitcast %struct.point511* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point511* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo512(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point512, align 4 + %4 = alloca %struct.point512, align 4 + %5 = bitcast %struct.point512* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point512* %3 to i8* + %9 = bitcast %struct.point512* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point512* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo513(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point513, align 4 + %4 = alloca %struct.point513, align 4 + %5 = bitcast %struct.point513* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point513* %3 to i8* + %9 = bitcast %struct.point513* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point513* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef byval(%struct.point514) align 8 %1) #0 { + %3 = bitcast %struct.point514* %0 to i8* + %4 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef byval(%struct.point515) align 8 %1) #0 { + %3 = bitcast %struct.point515* %0 to i8* + %4 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo516(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point516, align 4 + %4 = alloca %struct.point516, align 4 + %5 = bitcast %struct.point516* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point516* %3 to i8* + %9 = bitcast %struct.point516* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point516* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef byval(%struct.point517) align 8 %1) #0 { + %3 = bitcast %struct.point517* %0 to i8* + %4 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef byval(%struct.point518) align 8 %1) #0 { + %3 = bitcast %struct.point518* %0 to i8* + %4 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef byval(%struct.point519) align 8 %1) #0 { + %3 = bitcast %struct.point519* %0 to i8* + %4 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef byval(%struct.point520) align 8 %1) #0 { + %3 = bitcast %struct.point520* %0 to i8* + %4 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo521(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point521, align 4 + %4 = alloca %struct.point521, align 4 + %5 = bitcast %struct.point521* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point521* %3 to i8* + %9 = bitcast %struct.point521* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point521* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef byval(%struct.point522) align 8 %1) #0 { + %3 = bitcast %struct.point522* %0 to i8* + %4 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef byval(%struct.point523) align 8 %1) #0 { + %3 = bitcast %struct.point523* %0 to i8* + %4 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef byval(%struct.point524) align 8 %1) #0 { + %3 = bitcast %struct.point524* %0 to i8* + %4 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef byval(%struct.point525) align 8 %1) #0 { + %3 = bitcast %struct.point525* %0 to i8* + %4 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo526(i64 %0, float %1) #0 { + %3 = alloca %struct.point526, align 4 + %4 = alloca %struct.point526, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point526* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point526* %3 to i8* + %12 = bitcast %struct.point526* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point526* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo527(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point527, align 4 + %4 = alloca %struct.point527, align 4 + %5 = bitcast %struct.point527* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point527* %3 to i8* + %9 = bitcast %struct.point527* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point527* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo528(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point528, align 4 + %4 = alloca %struct.point528, align 4 + %5 = bitcast %struct.point528* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point528* %3 to i8* + %9 = bitcast %struct.point528* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point528* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo529(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point529, align 4 + %4 = alloca %struct.point529, align 4 + %5 = bitcast %struct.point529* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point529* %3 to i8* + %9 = bitcast %struct.point529* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point529* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef byval(%struct.point530) align 8 %1) #0 { + %3 = bitcast %struct.point530* %0 to i8* + %4 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef byval(%struct.point531) align 8 %1) #0 { + %3 = bitcast %struct.point531* %0 to i8* + %4 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo532(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point532, align 4 + %4 = alloca %struct.point532, align 4 + %5 = bitcast %struct.point532* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point532* %3 to i8* + %9 = bitcast %struct.point532* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point532* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo533(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point533, align 4 + %4 = alloca %struct.point533, align 4 + %5 = bitcast %struct.point533* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point533* %3 to i8* + %9 = bitcast %struct.point533* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point533* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo534(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point534, align 4 + %4 = alloca %struct.point534, align 4 + %5 = bitcast %struct.point534* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point534* %3 to i8* + %9 = bitcast %struct.point534* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point534* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef byval(%struct.point535) align 8 %1) #0 { + %3 = bitcast %struct.point535* %0 to i8* + %4 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef byval(%struct.point536) align 8 %1) #0 { + %3 = bitcast %struct.point536* %0 to i8* + %4 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo537(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point537, align 4 + %4 = alloca %struct.point537, align 4 + %5 = bitcast %struct.point537* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point537* %3 to i8* + %9 = bitcast %struct.point537* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point537* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef byval(%struct.point538) align 8 %1) #0 { + %3 = bitcast %struct.point538* %0 to i8* + %4 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef byval(%struct.point539) align 8 %1) #0 { + %3 = bitcast %struct.point539* %0 to i8* + %4 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef byval(%struct.point540) align 8 %1) #0 { + %3 = bitcast %struct.point540* %0 to i8* + %4 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef byval(%struct.point541) align 8 %1) #0 { + %3 = bitcast %struct.point541* %0 to i8* + %4 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo542(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point542, align 4 + %4 = alloca %struct.point542, align 4 + %5 = bitcast %struct.point542* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point542* %3 to i8* + %9 = bitcast %struct.point542* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point542* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef byval(%struct.point543) align 8 %1) #0 { + %3 = bitcast %struct.point543* %0 to i8* + %4 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef byval(%struct.point544) align 8 %1) #0 { + %3 = bitcast %struct.point544* %0 to i8* + %4 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef byval(%struct.point545) align 8 %1) #0 { + %3 = bitcast %struct.point545* %0 to i8* + %4 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef byval(%struct.point546) align 8 %1) #0 { + %3 = bitcast %struct.point546* %0 to i8* + %4 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo547(i64 %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point547* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo548(i64 %0) #0 { + %2 = alloca %struct.point548, align 4 + %3 = alloca %struct.point548, align 4 + %4 = bitcast %struct.point548* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point548* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo549(i64 %0) #0 { + %2 = alloca %struct.point549, align 4 + %3 = alloca %struct.point549, align 4 + %4 = bitcast %struct.point549* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point549* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo550(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point550, align 4 + %4 = alloca %struct.point550, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point550* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point550* %3 to i8* + %12 = bitcast %struct.point550* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point550* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo551(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point551, align 4 + %4 = alloca %struct.point551, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point551* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point551* %3 to i8* + %12 = bitcast %struct.point551* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point551* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo552(i64 %0, float %1) #0 { + %3 = alloca %struct.point552, align 4 + %4 = alloca %struct.point552, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point552* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point552* %3 to i8* + %12 = bitcast %struct.point552* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point552* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo553(i64 %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point553* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo554(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point554, align 4 + %4 = alloca %struct.point554, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point554* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point554* %3 to i8* + %12 = bitcast %struct.point554* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point554* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo555(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point555, align 4 + %4 = alloca %struct.point555, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point555* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point555* %3 to i8* + %12 = bitcast %struct.point555* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point555* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo556(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point556, align 4 + %4 = alloca %struct.point556, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point556* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point556* %3 to i8* + %12 = bitcast %struct.point556* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point556* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo557(i64 %0, float %1) #0 { + %3 = alloca %struct.point557, align 4 + %4 = alloca %struct.point557, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point557* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point557* %3 to i8* + %12 = bitcast %struct.point557* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point557* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo558(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point558, align 4 + %4 = alloca %struct.point558, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point558* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point558* %3 to i8* + %12 = bitcast %struct.point558* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point558* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo559(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point559, align 4 + %4 = alloca %struct.point559, align 4 + %5 = bitcast %struct.point559* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point559* %3 to i8* + %9 = bitcast %struct.point559* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point559* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo560(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point560, align 4 + %4 = alloca %struct.point560, align 4 + %5 = bitcast %struct.point560* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point560* %3 to i8* + %9 = bitcast %struct.point560* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point560* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo561(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point561, align 4 + %4 = alloca %struct.point561, align 4 + %5 = bitcast %struct.point561* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point561* %3 to i8* + %9 = bitcast %struct.point561* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point561* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo562(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point562, align 4 + %4 = alloca %struct.point562, align 4 + %5 = bitcast %struct.point562* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point562* %3 to i8* + %9 = bitcast %struct.point562* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point562* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo563(i64 %0, float %1) #0 { + %3 = alloca %struct.point563, align 4 + %4 = alloca %struct.point563, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point563* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point563* %3 to i8* + %12 = bitcast %struct.point563* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point563* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo564(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point564, align 4 + %4 = alloca %struct.point564, align 4 + %5 = bitcast %struct.point564* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point564* %3 to i8* + %9 = bitcast %struct.point564* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point564* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo565(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point565, align 4 + %4 = alloca %struct.point565, align 4 + %5 = bitcast %struct.point565* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point565* %3 to i8* + %9 = bitcast %struct.point565* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point565* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo566(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point566, align 4 + %4 = alloca %struct.point566, align 4 + %5 = bitcast %struct.point566* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point566* %3 to i8* + %9 = bitcast %struct.point566* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point566* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo567(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point567, align 4 + %4 = alloca %struct.point567, align 4 + %5 = bitcast %struct.point567* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point567* %3 to i8* + %9 = bitcast %struct.point567* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point567* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo568(i64 %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point568* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo569(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point569, align 4 + %4 = alloca %struct.point569, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point569* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point569* %3 to i8* + %12 = bitcast %struct.point569* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point569* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo570(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point570, align 4 + %4 = alloca %struct.point570, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point570* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point570* %3 to i8* + %12 = bitcast %struct.point570* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point570* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo571(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point571, align 4 + %4 = alloca %struct.point571, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point571* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point571* %3 to i8* + %12 = bitcast %struct.point571* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point571* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo572(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point572, align 4 + %4 = alloca %struct.point572, align 4 + %5 = bitcast %struct.point572* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point572* %3 to i8* + %9 = bitcast %struct.point572* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point572* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo573(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point573, align 4 + %4 = alloca %struct.point573, align 4 + %5 = bitcast %struct.point573* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point573* %3 to i8* + %9 = bitcast %struct.point573* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point573* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo574(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point574, align 4 + %4 = alloca %struct.point574, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point574* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point574* %3 to i8* + %12 = bitcast %struct.point574* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point574* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo575(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point575, align 4 + %4 = alloca %struct.point575, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point575* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point575* %3 to i8* + %12 = bitcast %struct.point575* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point575* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo576(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point576, align 4 + %4 = alloca %struct.point576, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point576* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point576* %3 to i8* + %12 = bitcast %struct.point576* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point576* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo577(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point577, align 4 + %4 = alloca %struct.point577, align 4 + %5 = bitcast %struct.point577* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point577* %3 to i8* + %9 = bitcast %struct.point577* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point577* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo578(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point578, align 4 + %4 = alloca %struct.point578, align 4 + %5 = bitcast %struct.point578* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point578* %3 to i8* + %9 = bitcast %struct.point578* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point578* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo579(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point579, align 4 + %4 = alloca %struct.point579, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point579* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point579* %3 to i8* + %12 = bitcast %struct.point579* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point579* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo580(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point580, align 4 + %4 = alloca %struct.point580, align 4 + %5 = bitcast %struct.point580* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point580* %3 to i8* + %9 = bitcast %struct.point580* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point580* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo581(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point581, align 4 + %4 = alloca %struct.point581, align 4 + %5 = bitcast %struct.point581* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point581* %3 to i8* + %9 = bitcast %struct.point581* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point581* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo582(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point582, align 4 + %4 = alloca %struct.point582, align 4 + %5 = bitcast %struct.point582* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point582* %3 to i8* + %9 = bitcast %struct.point582* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point582* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo583(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point583, align 4 + %4 = alloca %struct.point583, align 4 + %5 = bitcast %struct.point583* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point583* %3 to i8* + %9 = bitcast %struct.point583* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point583* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo584(i64 %0, float %1) #0 { + %3 = alloca %struct.point584, align 4 + %4 = alloca %struct.point584, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point584* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point584* %3 to i8* + %12 = bitcast %struct.point584* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point584* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo585(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point585, align 4 + %4 = alloca %struct.point585, align 4 + %5 = bitcast %struct.point585* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point585* %3 to i8* + %9 = bitcast %struct.point585* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point585* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo586(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point586, align 4 + %4 = alloca %struct.point586, align 4 + %5 = bitcast %struct.point586* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point586* %3 to i8* + %9 = bitcast %struct.point586* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point586* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo587(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point587, align 4 + %4 = alloca %struct.point587, align 4 + %5 = bitcast %struct.point587* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point587* %3 to i8* + %9 = bitcast %struct.point587* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point587* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo588(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point588, align 4 + %4 = alloca %struct.point588, align 4 + %5 = bitcast %struct.point588* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point588* %3 to i8* + %9 = bitcast %struct.point588* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point588* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo589(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point589, align 4 + %4 = alloca %struct.point589, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point589* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point589* %3 to i8* + %12 = bitcast %struct.point589* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point589* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo590(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point590, align 4 + %4 = alloca %struct.point590, align 4 + %5 = bitcast %struct.point590* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point590* %3 to i8* + %9 = bitcast %struct.point590* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point590* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo591(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point591, align 4 + %4 = alloca %struct.point591, align 4 + %5 = bitcast %struct.point591* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point591* %3 to i8* + %9 = bitcast %struct.point591* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point591* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo592(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point592, align 4 + %4 = alloca %struct.point592, align 4 + %5 = bitcast %struct.point592* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point592* %3 to i8* + %9 = bitcast %struct.point592* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point592* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef byval(%struct.point593) align 8 %1) #0 { + %3 = bitcast %struct.point593* %0 to i8* + %4 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef byval(%struct.point594) align 8 %1) #0 { + %3 = bitcast %struct.point594* %0 to i8* + %4 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo595(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point595, align 4 + %4 = alloca %struct.point595, align 4 + %5 = bitcast %struct.point595* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point595* %3 to i8* + %9 = bitcast %struct.point595* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point595* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo596(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point596, align 4 + %4 = alloca %struct.point596, align 4 + %5 = bitcast %struct.point596* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point596* %3 to i8* + %9 = bitcast %struct.point596* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point596* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo597(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point597, align 4 + %4 = alloca %struct.point597, align 4 + %5 = bitcast %struct.point597* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point597* %3 to i8* + %9 = bitcast %struct.point597* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point597* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef byval(%struct.point598) align 8 %1) #0 { + %3 = bitcast %struct.point598* %0 to i8* + %4 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef byval(%struct.point599) align 8 %1) #0 { + %3 = bitcast %struct.point599* %0 to i8* + %4 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo600(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point600, align 4 + %4 = alloca %struct.point600, align 4 + %5 = bitcast %struct.point600* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point600* %3 to i8* + %9 = bitcast %struct.point600* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point600* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef byval(%struct.point601) align 8 %1) #0 { + %3 = bitcast %struct.point601* %0 to i8* + %4 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef byval(%struct.point602) align 8 %1) #0 { + %3 = bitcast %struct.point602* %0 to i8* + %4 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef byval(%struct.point603) align 8 %1) #0 { + %3 = bitcast %struct.point603* %0 to i8* + %4 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef byval(%struct.point604) align 8 %1) #0 { + %3 = bitcast %struct.point604* %0 to i8* + %4 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo605(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point605, align 4 + %4 = alloca %struct.point605, align 4 + %5 = bitcast %struct.point605* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point605* %3 to i8* + %9 = bitcast %struct.point605* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point605* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef byval(%struct.point606) align 8 %1) #0 { + %3 = bitcast %struct.point606* %0 to i8* + %4 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef byval(%struct.point607) align 8 %1) #0 { + %3 = bitcast %struct.point607* %0 to i8* + %4 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef byval(%struct.point608) align 8 %1) #0 { + %3 = bitcast %struct.point608* %0 to i8* + %4 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef byval(%struct.point609) align 8 %1) #0 { + %3 = bitcast %struct.point609* %0 to i8* + %4 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo610(i64 %0, float %1) #0 { + %3 = alloca %struct.point610, align 4 + %4 = alloca %struct.point610, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point610* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point610* %3 to i8* + %12 = bitcast %struct.point610* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point610* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo611(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point611, align 4 + %4 = alloca %struct.point611, align 4 + %5 = bitcast %struct.point611* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point611* %3 to i8* + %9 = bitcast %struct.point611* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point611* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo612(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point612, align 4 + %4 = alloca %struct.point612, align 4 + %5 = bitcast %struct.point612* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point612* %3 to i8* + %9 = bitcast %struct.point612* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point612* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo613(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point613, align 4 + %4 = alloca %struct.point613, align 4 + %5 = bitcast %struct.point613* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point613* %3 to i8* + %9 = bitcast %struct.point613* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point613* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef byval(%struct.point614) align 8 %1) #0 { + %3 = bitcast %struct.point614* %0 to i8* + %4 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef byval(%struct.point615) align 8 %1) #0 { + %3 = bitcast %struct.point615* %0 to i8* + %4 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo616(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point616, align 4 + %4 = alloca %struct.point616, align 4 + %5 = bitcast %struct.point616* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point616* %3 to i8* + %9 = bitcast %struct.point616* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point616* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo617(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point617, align 4 + %4 = alloca %struct.point617, align 4 + %5 = bitcast %struct.point617* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point617* %3 to i8* + %9 = bitcast %struct.point617* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point617* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo618(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point618, align 4 + %4 = alloca %struct.point618, align 4 + %5 = bitcast %struct.point618* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point618* %3 to i8* + %9 = bitcast %struct.point618* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point618* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef byval(%struct.point619) align 8 %1) #0 { + %3 = bitcast %struct.point619* %0 to i8* + %4 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef byval(%struct.point620) align 8 %1) #0 { + %3 = bitcast %struct.point620* %0 to i8* + %4 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo621(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point621, align 4 + %4 = alloca %struct.point621, align 4 + %5 = bitcast %struct.point621* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point621* %3 to i8* + %9 = bitcast %struct.point621* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point621* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef byval(%struct.point622) align 8 %1) #0 { + %3 = bitcast %struct.point622* %0 to i8* + %4 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef byval(%struct.point623) align 8 %1) #0 { + %3 = bitcast %struct.point623* %0 to i8* + %4 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef byval(%struct.point624) align 8 %1) #0 { + %3 = bitcast %struct.point624* %0 to i8* + %4 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef byval(%struct.point625) align 8 %1) #0 { + %3 = bitcast %struct.point625* %0 to i8* + %4 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo626(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point626, align 4 + %4 = alloca %struct.point626, align 4 + %5 = bitcast %struct.point626* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point626* %3 to i8* + %9 = bitcast %struct.point626* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point626* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef byval(%struct.point627) align 8 %1) #0 { + %3 = bitcast %struct.point627* %0 to i8* + %4 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef byval(%struct.point628) align 8 %1) #0 { + %3 = bitcast %struct.point628* %0 to i8* + %4 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef byval(%struct.point629) align 8 %1) #0 { + %3 = bitcast %struct.point629* %0 to i8* + %4 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef byval(%struct.point630) align 8 %1) #0 { + %3 = bitcast %struct.point630* %0 to i8* + %4 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo631(i64 %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point631* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo632(i64 %0) #0 { + %2 = alloca %struct.point632, align 4 + %3 = alloca %struct.point632, align 4 + %4 = bitcast %struct.point632* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point632* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo633(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point633, align 4 + %4 = alloca %struct.point633, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point633* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point633* %3 to i8* + %12 = bitcast %struct.point633* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point633* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo634(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point634, align 4 + %4 = alloca %struct.point634, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point634* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point634* %3 to i8* + %12 = bitcast %struct.point634* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point634* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo635(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point635, align 4 + %4 = alloca %struct.point635, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point635* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point635* %3 to i8* + %12 = bitcast %struct.point635* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point635* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo636(i64 %0, float %1) #0 { + %3 = alloca %struct.point636, align 4 + %4 = alloca %struct.point636, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point636* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point636* %3 to i8* + %12 = bitcast %struct.point636* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point636* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo637(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point637, align 4 + %4 = alloca %struct.point637, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point637* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point637* %3 to i8* + %12 = bitcast %struct.point637* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point637* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo638(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point638, align 4 + %4 = alloca %struct.point638, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point638* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point638* %3 to i8* + %12 = bitcast %struct.point638* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point638* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo639(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point639, align 4 + %4 = alloca %struct.point639, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point639* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point639* %3 to i8* + %12 = bitcast %struct.point639* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point639* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo640(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point640, align 4 + %4 = alloca %struct.point640, align 4 + %5 = bitcast %struct.point640* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point640* %3 to i8* + %9 = bitcast %struct.point640* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point640* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo641(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point641, align 4 + %4 = alloca %struct.point641, align 4 + %5 = bitcast %struct.point641* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point641* %3 to i8* + %9 = bitcast %struct.point641* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point641* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo642(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point642, align 4 + %4 = alloca %struct.point642, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point642* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point642* %3 to i8* + %12 = bitcast %struct.point642* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point642* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo643(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point643, align 4 + %4 = alloca %struct.point643, align 4 + %5 = bitcast %struct.point643* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point643* %3 to i8* + %9 = bitcast %struct.point643* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point643* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo644(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point644, align 4 + %4 = alloca %struct.point644, align 4 + %5 = bitcast %struct.point644* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point644* %3 to i8* + %9 = bitcast %struct.point644* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point644* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo645(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point645, align 4 + %4 = alloca %struct.point645, align 4 + %5 = bitcast %struct.point645* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point645* %3 to i8* + %9 = bitcast %struct.point645* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point645* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo646(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point646, align 4 + %4 = alloca %struct.point646, align 4 + %5 = bitcast %struct.point646* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point646* %3 to i8* + %9 = bitcast %struct.point646* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point646* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo647(i64 %0, float %1) #0 { + %3 = alloca %struct.point647, align 4 + %4 = alloca %struct.point647, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point647* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point647* %3 to i8* + %12 = bitcast %struct.point647* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point647* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo648(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point648, align 4 + %4 = alloca %struct.point648, align 4 + %5 = bitcast %struct.point648* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point648* %3 to i8* + %9 = bitcast %struct.point648* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point648* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo649(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point649, align 4 + %4 = alloca %struct.point649, align 4 + %5 = bitcast %struct.point649* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point649* %3 to i8* + %9 = bitcast %struct.point649* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point649* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo650(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point650, align 4 + %4 = alloca %struct.point650, align 4 + %5 = bitcast %struct.point650* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point650* %3 to i8* + %9 = bitcast %struct.point650* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point650* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo651(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point651, align 4 + %4 = alloca %struct.point651, align 4 + %5 = bitcast %struct.point651* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point651* %3 to i8* + %9 = bitcast %struct.point651* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point651* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo652(i64 %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point652* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo653(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point653, align 4 + %4 = alloca %struct.point653, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point653* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point653* %3 to i8* + %12 = bitcast %struct.point653* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point653* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo654(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point654, align 4 + %4 = alloca %struct.point654, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point654* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point654* %3 to i8* + %12 = bitcast %struct.point654* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point654* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo655(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point655, align 4 + %4 = alloca %struct.point655, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point655* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point655* %3 to i8* + %12 = bitcast %struct.point655* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point655* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo656(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point656, align 4 + %4 = alloca %struct.point656, align 4 + %5 = bitcast %struct.point656* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point656* %3 to i8* + %9 = bitcast %struct.point656* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point656* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo657(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point657, align 4 + %4 = alloca %struct.point657, align 4 + %5 = bitcast %struct.point657* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point657* %3 to i8* + %9 = bitcast %struct.point657* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point657* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo658(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point658, align 4 + %4 = alloca %struct.point658, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point658* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point658* %3 to i8* + %12 = bitcast %struct.point658* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point658* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo659(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point659, align 4 + %4 = alloca %struct.point659, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point659* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point659* %3 to i8* + %12 = bitcast %struct.point659* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point659* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo660(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point660, align 4 + %4 = alloca %struct.point660, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point660* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point660* %3 to i8* + %12 = bitcast %struct.point660* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point660* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo661(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point661, align 4 + %4 = alloca %struct.point661, align 4 + %5 = bitcast %struct.point661* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point661* %3 to i8* + %9 = bitcast %struct.point661* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point661* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo662(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point662, align 4 + %4 = alloca %struct.point662, align 4 + %5 = bitcast %struct.point662* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point662* %3 to i8* + %9 = bitcast %struct.point662* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point662* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo663(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point663, align 4 + %4 = alloca %struct.point663, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point663* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point663* %3 to i8* + %12 = bitcast %struct.point663* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point663* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo664(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point664, align 4 + %4 = alloca %struct.point664, align 4 + %5 = bitcast %struct.point664* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point664* %3 to i8* + %9 = bitcast %struct.point664* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point664* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo665(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point665, align 4 + %4 = alloca %struct.point665, align 4 + %5 = bitcast %struct.point665* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point665* %3 to i8* + %9 = bitcast %struct.point665* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point665* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo666(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point666, align 4 + %4 = alloca %struct.point666, align 4 + %5 = bitcast %struct.point666* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point666* %3 to i8* + %9 = bitcast %struct.point666* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point666* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo667(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point667, align 4 + %4 = alloca %struct.point667, align 4 + %5 = bitcast %struct.point667* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point667* %3 to i8* + %9 = bitcast %struct.point667* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point667* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo668(i64 %0, float %1) #0 { + %3 = alloca %struct.point668, align 4 + %4 = alloca %struct.point668, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point668* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point668* %3 to i8* + %12 = bitcast %struct.point668* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point668* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo669(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point669, align 4 + %4 = alloca %struct.point669, align 4 + %5 = bitcast %struct.point669* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point669* %3 to i8* + %9 = bitcast %struct.point669* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point669* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo670(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point670, align 4 + %4 = alloca %struct.point670, align 4 + %5 = bitcast %struct.point670* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point670* %3 to i8* + %9 = bitcast %struct.point670* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point670* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo671(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point671, align 4 + %4 = alloca %struct.point671, align 4 + %5 = bitcast %struct.point671* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point671* %3 to i8* + %9 = bitcast %struct.point671* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point671* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo672(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point672, align 4 + %4 = alloca %struct.point672, align 4 + %5 = bitcast %struct.point672* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point672* %3 to i8* + %9 = bitcast %struct.point672* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point672* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo673(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point673, align 4 + %4 = alloca %struct.point673, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point673* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point673* %3 to i8* + %12 = bitcast %struct.point673* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point673* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo674(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point674, align 4 + %4 = alloca %struct.point674, align 4 + %5 = bitcast %struct.point674* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point674* %3 to i8* + %9 = bitcast %struct.point674* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point674* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo675(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point675, align 4 + %4 = alloca %struct.point675, align 4 + %5 = bitcast %struct.point675* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point675* %3 to i8* + %9 = bitcast %struct.point675* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point675* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo676(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point676, align 4 + %4 = alloca %struct.point676, align 4 + %5 = bitcast %struct.point676* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point676* %3 to i8* + %9 = bitcast %struct.point676* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point676* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef byval(%struct.point677) align 8 %1) #0 { + %3 = bitcast %struct.point677* %0 to i8* + %4 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef byval(%struct.point678) align 8 %1) #0 { + %3 = bitcast %struct.point678* %0 to i8* + %4 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo679(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point679, align 4 + %4 = alloca %struct.point679, align 4 + %5 = bitcast %struct.point679* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point679* %3 to i8* + %9 = bitcast %struct.point679* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point679* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo680(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point680, align 4 + %4 = alloca %struct.point680, align 4 + %5 = bitcast %struct.point680* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point680* %3 to i8* + %9 = bitcast %struct.point680* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point680* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo681(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point681, align 4 + %4 = alloca %struct.point681, align 4 + %5 = bitcast %struct.point681* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point681* %3 to i8* + %9 = bitcast %struct.point681* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point681* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef byval(%struct.point682) align 8 %1) #0 { + %3 = bitcast %struct.point682* %0 to i8* + %4 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef byval(%struct.point683) align 8 %1) #0 { + %3 = bitcast %struct.point683* %0 to i8* + %4 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo684(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point684, align 4 + %4 = alloca %struct.point684, align 4 + %5 = bitcast %struct.point684* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point684* %3 to i8* + %9 = bitcast %struct.point684* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point684* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef byval(%struct.point685) align 8 %1) #0 { + %3 = bitcast %struct.point685* %0 to i8* + %4 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef byval(%struct.point686) align 8 %1) #0 { + %3 = bitcast %struct.point686* %0 to i8* + %4 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef byval(%struct.point687) align 8 %1) #0 { + %3 = bitcast %struct.point687* %0 to i8* + %4 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef byval(%struct.point688) align 8 %1) #0 { + %3 = bitcast %struct.point688* %0 to i8* + %4 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo689(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point689, align 4 + %4 = alloca %struct.point689, align 4 + %5 = bitcast %struct.point689* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point689* %3 to i8* + %9 = bitcast %struct.point689* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point689* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef byval(%struct.point690) align 8 %1) #0 { + %3 = bitcast %struct.point690* %0 to i8* + %4 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef byval(%struct.point691) align 8 %1) #0 { + %3 = bitcast %struct.point691* %0 to i8* + %4 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef byval(%struct.point692) align 8 %1) #0 { + %3 = bitcast %struct.point692* %0 to i8* + %4 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef byval(%struct.point693) align 8 %1) #0 { + %3 = bitcast %struct.point693* %0 to i8* + %4 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo694(i64 %0, float %1) #0 { + %3 = alloca %struct.point694, align 4 + %4 = alloca %struct.point694, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point694* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point694* %3 to i8* + %12 = bitcast %struct.point694* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point694* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo695(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point695, align 4 + %4 = alloca %struct.point695, align 4 + %5 = bitcast %struct.point695* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point695* %3 to i8* + %9 = bitcast %struct.point695* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point695* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo696(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point696, align 4 + %4 = alloca %struct.point696, align 4 + %5 = bitcast %struct.point696* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point696* %3 to i8* + %9 = bitcast %struct.point696* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point696* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo697(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point697, align 4 + %4 = alloca %struct.point697, align 4 + %5 = bitcast %struct.point697* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point697* %3 to i8* + %9 = bitcast %struct.point697* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point697* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef byval(%struct.point698) align 8 %1) #0 { + %3 = bitcast %struct.point698* %0 to i8* + %4 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef byval(%struct.point699) align 8 %1) #0 { + %3 = bitcast %struct.point699* %0 to i8* + %4 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo700(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point700, align 4 + %4 = alloca %struct.point700, align 4 + %5 = bitcast %struct.point700* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point700* %3 to i8* + %9 = bitcast %struct.point700* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point700* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo701(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point701, align 4 + %4 = alloca %struct.point701, align 4 + %5 = bitcast %struct.point701* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point701* %3 to i8* + %9 = bitcast %struct.point701* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point701* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo702(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point702, align 4 + %4 = alloca %struct.point702, align 4 + %5 = bitcast %struct.point702* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point702* %3 to i8* + %9 = bitcast %struct.point702* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point702* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef byval(%struct.point703) align 8 %1) #0 { + %3 = bitcast %struct.point703* %0 to i8* + %4 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef byval(%struct.point704) align 8 %1) #0 { + %3 = bitcast %struct.point704* %0 to i8* + %4 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo705(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point705, align 4 + %4 = alloca %struct.point705, align 4 + %5 = bitcast %struct.point705* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point705* %3 to i8* + %9 = bitcast %struct.point705* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point705* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef byval(%struct.point706) align 8 %1) #0 { + %3 = bitcast %struct.point706* %0 to i8* + %4 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef byval(%struct.point707) align 8 %1) #0 { + %3 = bitcast %struct.point707* %0 to i8* + %4 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef byval(%struct.point708) align 8 %1) #0 { + %3 = bitcast %struct.point708* %0 to i8* + %4 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef byval(%struct.point709) align 8 %1) #0 { + %3 = bitcast %struct.point709* %0 to i8* + %4 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo710(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point710, align 4 + %4 = alloca %struct.point710, align 4 + %5 = bitcast %struct.point710* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point710* %3 to i8* + %9 = bitcast %struct.point710* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point710* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef byval(%struct.point711) align 8 %1) #0 { + %3 = bitcast %struct.point711* %0 to i8* + %4 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef byval(%struct.point712) align 8 %1) #0 { + %3 = bitcast %struct.point712* %0 to i8* + %4 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef byval(%struct.point713) align 8 %1) #0 { + %3 = bitcast %struct.point713* %0 to i8* + %4 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef byval(%struct.point714) align 8 %1) #0 { + %3 = bitcast %struct.point714* %0 to i8* + %4 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo715(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point715, align 4 + %4 = alloca %struct.point715, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point715* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point715* %3 to i8* + %12 = bitcast %struct.point715* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point715* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo716(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point716, align 4 + %4 = alloca %struct.point716, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point716* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point716* %3 to i8* + %12 = bitcast %struct.point716* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point716* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo717(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point717, align 4 + %4 = alloca %struct.point717, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point717* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point717* %3 to i8* + %12 = bitcast %struct.point717* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point717* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo718(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point718, align 4 + %4 = alloca %struct.point718, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point718* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point718* %3 to i8* + %12 = bitcast %struct.point718* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point718* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo719(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point719, align 4 + %4 = alloca %struct.point719, align 4 + %5 = bitcast %struct.point719* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point719* %3 to i8* + %9 = bitcast %struct.point719* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point719* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo720(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point720, align 4 + %4 = alloca %struct.point720, align 4 + %5 = bitcast %struct.point720* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point720* %3 to i8* + %9 = bitcast %struct.point720* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point720* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo721(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point721, align 4 + %4 = alloca %struct.point721, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point721* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point721* %3 to i8* + %12 = bitcast %struct.point721* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point721* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo722(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point722, align 4 + %4 = alloca %struct.point722, align 4 + %5 = bitcast %struct.point722* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point722* %3 to i8* + %9 = bitcast %struct.point722* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point722* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo723(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point723, align 4 + %4 = alloca %struct.point723, align 4 + %5 = bitcast %struct.point723* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point723* %3 to i8* + %9 = bitcast %struct.point723* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point723* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo724(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point724, align 4 + %4 = alloca %struct.point724, align 4 + %5 = bitcast %struct.point724* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point724* %3 to i8* + %9 = bitcast %struct.point724* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point724* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo725(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point725, align 4 + %4 = alloca %struct.point725, align 4 + %5 = bitcast %struct.point725* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point725* %3 to i8* + %9 = bitcast %struct.point725* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point725* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo726(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point726, align 4 + %4 = alloca %struct.point726, align 4 + %5 = bitcast %struct.point726* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point726* %3 to i8* + %9 = bitcast %struct.point726* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point726* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef byval(%struct.point727) align 8 %1) #0 { + %3 = bitcast %struct.point727* %0 to i8* + %4 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef byval(%struct.point728) align 8 %1) #0 { + %3 = bitcast %struct.point728* %0 to i8* + %4 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef byval(%struct.point729) align 8 %1) #0 { + %3 = bitcast %struct.point729* %0 to i8* + %4 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef byval(%struct.point730) align 8 %1) #0 { + %3 = bitcast %struct.point730* %0 to i8* + %4 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo731(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point731, align 4 + %4 = alloca %struct.point731, align 4 + %5 = bitcast %struct.point731* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point731* %3 to i8* + %9 = bitcast %struct.point731* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point731* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef byval(%struct.point732) align 8 %1) #0 { + %3 = bitcast %struct.point732* %0 to i8* + %4 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef byval(%struct.point733) align 8 %1) #0 { + %3 = bitcast %struct.point733* %0 to i8* + %4 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef byval(%struct.point734) align 8 %1) #0 { + %3 = bitcast %struct.point734* %0 to i8* + %4 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef byval(%struct.point735) align 8 %1) #0 { + %3 = bitcast %struct.point735* %0 to i8* + %4 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo736(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point736, align 4 + %4 = alloca %struct.point736, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point736* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point736* %3 to i8* + %12 = bitcast %struct.point736* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point736* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo737(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point737, align 4 + %4 = alloca %struct.point737, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point737* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point737* %3 to i8* + %12 = bitcast %struct.point737* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point737* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo738(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point738, align 4 + %4 = alloca %struct.point738, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point738* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point738* %3 to i8* + %12 = bitcast %struct.point738* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point738* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo739(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point739, align 4 + %4 = alloca %struct.point739, align 4 + %5 = bitcast %struct.point739* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point739* %3 to i8* + %9 = bitcast %struct.point739* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point739* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo740(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point740, align 4 + %4 = alloca %struct.point740, align 4 + %5 = bitcast %struct.point740* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point740* %3 to i8* + %9 = bitcast %struct.point740* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point740* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo741(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point741, align 4 + %4 = alloca %struct.point741, align 4 + %5 = bitcast %struct.point741* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point741* %3 to i8* + %9 = bitcast %struct.point741* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point741* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo742(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point742, align 4 + %4 = alloca %struct.point742, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point742* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point742* %3 to i8* + %12 = bitcast %struct.point742* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point742* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo743(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point743, align 4 + %4 = alloca %struct.point743, align 4 + %5 = bitcast %struct.point743* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point743* %3 to i8* + %9 = bitcast %struct.point743* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point743* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo744(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point744, align 4 + %4 = alloca %struct.point744, align 4 + %5 = bitcast %struct.point744* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point744* %3 to i8* + %9 = bitcast %struct.point744* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point744* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo745(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point745, align 4 + %4 = alloca %struct.point745, align 4 + %5 = bitcast %struct.point745* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point745* %3 to i8* + %9 = bitcast %struct.point745* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point745* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo746(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point746, align 4 + %4 = alloca %struct.point746, align 4 + %5 = bitcast %struct.point746* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point746* %3 to i8* + %9 = bitcast %struct.point746* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point746* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo747(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point747, align 4 + %4 = alloca %struct.point747, align 4 + %5 = bitcast %struct.point747* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point747* %3 to i8* + %9 = bitcast %struct.point747* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point747* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef byval(%struct.point748) align 8 %1) #0 { + %3 = bitcast %struct.point748* %0 to i8* + %4 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef byval(%struct.point749) align 8 %1) #0 { + %3 = bitcast %struct.point749* %0 to i8* + %4 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef byval(%struct.point750) align 8 %1) #0 { + %3 = bitcast %struct.point750* %0 to i8* + %4 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef byval(%struct.point751) align 8 %1) #0 { + %3 = bitcast %struct.point751* %0 to i8* + %4 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo752(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point752, align 4 + %4 = alloca %struct.point752, align 4 + %5 = bitcast %struct.point752* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point752* %3 to i8* + %9 = bitcast %struct.point752* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point752* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef byval(%struct.point753) align 8 %1) #0 { + %3 = bitcast %struct.point753* %0 to i8* + %4 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef byval(%struct.point754) align 8 %1) #0 { + %3 = bitcast %struct.point754* %0 to i8* + %4 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef byval(%struct.point755) align 8 %1) #0 { + %3 = bitcast %struct.point755* %0 to i8* + %4 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef byval(%struct.point756) align 8 %1) #0 { + %3 = bitcast %struct.point756* %0 to i8* + %4 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo757(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point757, align 4 + %4 = alloca %struct.point757, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point757* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point757* %3 to i8* + %12 = bitcast %struct.point757* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point757* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo758(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point758, align 4 + %4 = alloca %struct.point758, align 4 + %5 = bitcast %struct.point758* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point758* %3 to i8* + %9 = bitcast %struct.point758* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point758* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo759(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point759, align 4 + %4 = alloca %struct.point759, align 4 + %5 = bitcast %struct.point759* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point759* %3 to i8* + %9 = bitcast %struct.point759* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point759* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo760(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point760, align 4 + %4 = alloca %struct.point760, align 4 + %5 = bitcast %struct.point760* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point760* %3 to i8* + %9 = bitcast %struct.point760* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point760* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef byval(%struct.point761) align 8 %1) #0 { + %3 = bitcast %struct.point761* %0 to i8* + %4 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef byval(%struct.point762) align 8 %1) #0 { + %3 = bitcast %struct.point762* %0 to i8* + %4 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo763(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point763, align 4 + %4 = alloca %struct.point763, align 4 + %5 = bitcast %struct.point763* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point763* %3 to i8* + %9 = bitcast %struct.point763* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point763* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo764(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point764, align 4 + %4 = alloca %struct.point764, align 4 + %5 = bitcast %struct.point764* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point764* %3 to i8* + %9 = bitcast %struct.point764* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point764* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo765(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point765, align 4 + %4 = alloca %struct.point765, align 4 + %5 = bitcast %struct.point765* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point765* %3 to i8* + %9 = bitcast %struct.point765* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point765* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef byval(%struct.point766) align 8 %1) #0 { + %3 = bitcast %struct.point766* %0 to i8* + %4 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef byval(%struct.point767) align 8 %1) #0 { + %3 = bitcast %struct.point767* %0 to i8* + %4 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo768(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point768, align 4 + %4 = alloca %struct.point768, align 4 + %5 = bitcast %struct.point768* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point768* %3 to i8* + %9 = bitcast %struct.point768* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point768* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef byval(%struct.point769) align 8 %1) #0 { + %3 = bitcast %struct.point769* %0 to i8* + %4 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef byval(%struct.point770) align 8 %1) #0 { + %3 = bitcast %struct.point770* %0 to i8* + %4 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef byval(%struct.point771) align 8 %1) #0 { + %3 = bitcast %struct.point771* %0 to i8* + %4 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef byval(%struct.point772) align 8 %1) #0 { + %3 = bitcast %struct.point772* %0 to i8* + %4 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo773(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point773, align 4 + %4 = alloca %struct.point773, align 4 + %5 = bitcast %struct.point773* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point773* %3 to i8* + %9 = bitcast %struct.point773* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point773* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef byval(%struct.point774) align 8 %1) #0 { + %3 = bitcast %struct.point774* %0 to i8* + %4 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef byval(%struct.point775) align 8 %1) #0 { + %3 = bitcast %struct.point775* %0 to i8* + %4 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef byval(%struct.point776) align 8 %1) #0 { + %3 = bitcast %struct.point776* %0 to i8* + %4 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef byval(%struct.point777) align 8 %1) #0 { + %3 = bitcast %struct.point777* %0 to i8* + %4 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo778(i64 %0, float %1) #0 { + %3 = alloca %struct.point778, align 4 + %4 = alloca %struct.point778, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point778* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point778* %3 to i8* + %12 = bitcast %struct.point778* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point778* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo779(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point779, align 4 + %4 = alloca %struct.point779, align 4 + %5 = bitcast %struct.point779* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point779* %3 to i8* + %9 = bitcast %struct.point779* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point779* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo780(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point780, align 4 + %4 = alloca %struct.point780, align 4 + %5 = bitcast %struct.point780* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point780* %3 to i8* + %9 = bitcast %struct.point780* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point780* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo781(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point781, align 4 + %4 = alloca %struct.point781, align 4 + %5 = bitcast %struct.point781* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point781* %3 to i8* + %9 = bitcast %struct.point781* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point781* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef byval(%struct.point782) align 8 %1) #0 { + %3 = bitcast %struct.point782* %0 to i8* + %4 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef byval(%struct.point783) align 8 %1) #0 { + %3 = bitcast %struct.point783* %0 to i8* + %4 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo784(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point784, align 4 + %4 = alloca %struct.point784, align 4 + %5 = bitcast %struct.point784* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point784* %3 to i8* + %9 = bitcast %struct.point784* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point784* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo785(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point785, align 4 + %4 = alloca %struct.point785, align 4 + %5 = bitcast %struct.point785* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point785* %3 to i8* + %9 = bitcast %struct.point785* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point785* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo786(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point786, align 4 + %4 = alloca %struct.point786, align 4 + %5 = bitcast %struct.point786* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point786* %3 to i8* + %9 = bitcast %struct.point786* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point786* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef byval(%struct.point787) align 8 %1) #0 { + %3 = bitcast %struct.point787* %0 to i8* + %4 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef byval(%struct.point788) align 8 %1) #0 { + %3 = bitcast %struct.point788* %0 to i8* + %4 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo789(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point789, align 4 + %4 = alloca %struct.point789, align 4 + %5 = bitcast %struct.point789* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point789* %3 to i8* + %9 = bitcast %struct.point789* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point789* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef byval(%struct.point790) align 8 %1) #0 { + %3 = bitcast %struct.point790* %0 to i8* + %4 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef byval(%struct.point791) align 8 %1) #0 { + %3 = bitcast %struct.point791* %0 to i8* + %4 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef byval(%struct.point792) align 8 %1) #0 { + %3 = bitcast %struct.point792* %0 to i8* + %4 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef byval(%struct.point793) align 8 %1) #0 { + %3 = bitcast %struct.point793* %0 to i8* + %4 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo794(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point794, align 4 + %4 = alloca %struct.point794, align 4 + %5 = bitcast %struct.point794* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point794* %3 to i8* + %9 = bitcast %struct.point794* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point794* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef byval(%struct.point795) align 8 %1) #0 { + %3 = bitcast %struct.point795* %0 to i8* + %4 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef byval(%struct.point796) align 8 %1) #0 { + %3 = bitcast %struct.point796* %0 to i8* + %4 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef byval(%struct.point797) align 8 %1) #0 { + %3 = bitcast %struct.point797* %0 to i8* + %4 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef byval(%struct.point798) align 8 %1) #0 { + %3 = bitcast %struct.point798* %0 to i8* + %4 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo799(i64 %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point799* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo800(i64 %0) #0 { + %2 = alloca %struct.point800, align 4 + %3 = alloca %struct.point800, align 4 + %4 = bitcast %struct.point800* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point800* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo801(i64 %0) #0 { + %2 = alloca %struct.point801, align 4 + %3 = alloca %struct.point801, align 4 + %4 = bitcast %struct.point801* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point801* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo802(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point802, align 4 + %4 = alloca %struct.point802, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point802* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point802* %3 to i8* + %12 = bitcast %struct.point802* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point802* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo803(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point803, align 4 + %4 = alloca %struct.point803, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point803* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point803* %3 to i8* + %12 = bitcast %struct.point803* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point803* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo804(i64 %0, float %1) #0 { + %3 = alloca %struct.point804, align 4 + %4 = alloca %struct.point804, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point804* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point804* %3 to i8* + %12 = bitcast %struct.point804* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point804* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo805(i64 %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point805* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo806(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point806, align 4 + %4 = alloca %struct.point806, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point806* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point806* %3 to i8* + %12 = bitcast %struct.point806* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point806* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo807(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point807, align 4 + %4 = alloca %struct.point807, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point807* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point807* %3 to i8* + %12 = bitcast %struct.point807* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point807* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo808(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point808, align 4 + %4 = alloca %struct.point808, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point808* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point808* %3 to i8* + %12 = bitcast %struct.point808* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point808* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo809(i64 %0, float %1) #0 { + %3 = alloca %struct.point809, align 4 + %4 = alloca %struct.point809, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point809* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point809* %3 to i8* + %12 = bitcast %struct.point809* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point809* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo810(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point810, align 4 + %4 = alloca %struct.point810, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point810* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point810* %3 to i8* + %12 = bitcast %struct.point810* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point810* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo811(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point811, align 4 + %4 = alloca %struct.point811, align 4 + %5 = bitcast %struct.point811* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point811* %3 to i8* + %9 = bitcast %struct.point811* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point811* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo812(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point812, align 4 + %4 = alloca %struct.point812, align 4 + %5 = bitcast %struct.point812* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point812* %3 to i8* + %9 = bitcast %struct.point812* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point812* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo813(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point813, align 4 + %4 = alloca %struct.point813, align 4 + %5 = bitcast %struct.point813* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point813* %3 to i8* + %9 = bitcast %struct.point813* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point813* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo814(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point814, align 4 + %4 = alloca %struct.point814, align 4 + %5 = bitcast %struct.point814* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point814* %3 to i8* + %9 = bitcast %struct.point814* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point814* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo815(i64 %0, float %1) #0 { + %3 = alloca %struct.point815, align 4 + %4 = alloca %struct.point815, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point815* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point815* %3 to i8* + %12 = bitcast %struct.point815* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point815* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo816(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point816, align 4 + %4 = alloca %struct.point816, align 4 + %5 = bitcast %struct.point816* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point816* %3 to i8* + %9 = bitcast %struct.point816* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point816* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo817(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point817, align 4 + %4 = alloca %struct.point817, align 4 + %5 = bitcast %struct.point817* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point817* %3 to i8* + %9 = bitcast %struct.point817* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point817* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo818(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point818, align 4 + %4 = alloca %struct.point818, align 4 + %5 = bitcast %struct.point818* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point818* %3 to i8* + %9 = bitcast %struct.point818* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point818* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo819(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point819, align 4 + %4 = alloca %struct.point819, align 4 + %5 = bitcast %struct.point819* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point819* %3 to i8* + %9 = bitcast %struct.point819* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point819* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo820(i64 %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point820* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo821(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point821, align 4 + %4 = alloca %struct.point821, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point821* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point821* %3 to i8* + %12 = bitcast %struct.point821* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point821* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo822(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point822, align 4 + %4 = alloca %struct.point822, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point822* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point822* %3 to i8* + %12 = bitcast %struct.point822* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point822* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo823(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point823, align 4 + %4 = alloca %struct.point823, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point823* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point823* %3 to i8* + %12 = bitcast %struct.point823* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point823* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo824(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point824, align 4 + %4 = alloca %struct.point824, align 4 + %5 = bitcast %struct.point824* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point824* %3 to i8* + %9 = bitcast %struct.point824* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point824* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo825(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point825, align 4 + %4 = alloca %struct.point825, align 4 + %5 = bitcast %struct.point825* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point825* %3 to i8* + %9 = bitcast %struct.point825* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point825* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo826(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point826, align 4 + %4 = alloca %struct.point826, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point826* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point826* %3 to i8* + %12 = bitcast %struct.point826* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point826* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo827(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point827, align 4 + %4 = alloca %struct.point827, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point827* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point827* %3 to i8* + %12 = bitcast %struct.point827* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point827* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo828(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point828, align 4 + %4 = alloca %struct.point828, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point828* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point828* %3 to i8* + %12 = bitcast %struct.point828* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point828* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo829(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point829, align 4 + %4 = alloca %struct.point829, align 4 + %5 = bitcast %struct.point829* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point829* %3 to i8* + %9 = bitcast %struct.point829* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point829* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo830(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point830, align 4 + %4 = alloca %struct.point830, align 4 + %5 = bitcast %struct.point830* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point830* %3 to i8* + %9 = bitcast %struct.point830* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point830* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo831(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point831, align 4 + %4 = alloca %struct.point831, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point831* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point831* %3 to i8* + %12 = bitcast %struct.point831* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point831* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo832(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point832, align 4 + %4 = alloca %struct.point832, align 4 + %5 = bitcast %struct.point832* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point832* %3 to i8* + %9 = bitcast %struct.point832* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point832* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo833(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point833, align 4 + %4 = alloca %struct.point833, align 4 + %5 = bitcast %struct.point833* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point833* %3 to i8* + %9 = bitcast %struct.point833* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point833* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo834(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point834, align 4 + %4 = alloca %struct.point834, align 4 + %5 = bitcast %struct.point834* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point834* %3 to i8* + %9 = bitcast %struct.point834* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point834* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo835(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point835, align 4 + %4 = alloca %struct.point835, align 4 + %5 = bitcast %struct.point835* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point835* %3 to i8* + %9 = bitcast %struct.point835* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point835* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo836(i64 %0, float %1) #0 { + %3 = alloca %struct.point836, align 4 + %4 = alloca %struct.point836, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point836* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point836* %3 to i8* + %12 = bitcast %struct.point836* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point836* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo837(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point837, align 4 + %4 = alloca %struct.point837, align 4 + %5 = bitcast %struct.point837* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point837* %3 to i8* + %9 = bitcast %struct.point837* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point837* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo838(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point838, align 4 + %4 = alloca %struct.point838, align 4 + %5 = bitcast %struct.point838* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point838* %3 to i8* + %9 = bitcast %struct.point838* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point838* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo839(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point839, align 4 + %4 = alloca %struct.point839, align 4 + %5 = bitcast %struct.point839* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point839* %3 to i8* + %9 = bitcast %struct.point839* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point839* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo840(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point840, align 4 + %4 = alloca %struct.point840, align 4 + %5 = bitcast %struct.point840* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point840* %3 to i8* + %9 = bitcast %struct.point840* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point840* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo841(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point841, align 4 + %4 = alloca %struct.point841, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point841* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point841* %3 to i8* + %12 = bitcast %struct.point841* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point841* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo842(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point842, align 4 + %4 = alloca %struct.point842, align 4 + %5 = bitcast %struct.point842* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point842* %3 to i8* + %9 = bitcast %struct.point842* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point842* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo843(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point843, align 4 + %4 = alloca %struct.point843, align 4 + %5 = bitcast %struct.point843* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point843* %3 to i8* + %9 = bitcast %struct.point843* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point843* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo844(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point844, align 4 + %4 = alloca %struct.point844, align 4 + %5 = bitcast %struct.point844* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point844* %3 to i8* + %9 = bitcast %struct.point844* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point844* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef byval(%struct.point845) align 8 %1) #0 { + %3 = bitcast %struct.point845* %0 to i8* + %4 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef byval(%struct.point846) align 8 %1) #0 { + %3 = bitcast %struct.point846* %0 to i8* + %4 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo847(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point847, align 4 + %4 = alloca %struct.point847, align 4 + %5 = bitcast %struct.point847* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point847* %3 to i8* + %9 = bitcast %struct.point847* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point847* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo848(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point848, align 4 + %4 = alloca %struct.point848, align 4 + %5 = bitcast %struct.point848* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point848* %3 to i8* + %9 = bitcast %struct.point848* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point848* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo849(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point849, align 4 + %4 = alloca %struct.point849, align 4 + %5 = bitcast %struct.point849* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point849* %3 to i8* + %9 = bitcast %struct.point849* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point849* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef byval(%struct.point850) align 8 %1) #0 { + %3 = bitcast %struct.point850* %0 to i8* + %4 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef byval(%struct.point851) align 8 %1) #0 { + %3 = bitcast %struct.point851* %0 to i8* + %4 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo852(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point852, align 4 + %4 = alloca %struct.point852, align 4 + %5 = bitcast %struct.point852* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point852* %3 to i8* + %9 = bitcast %struct.point852* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point852* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef byval(%struct.point853) align 8 %1) #0 { + %3 = bitcast %struct.point853* %0 to i8* + %4 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef byval(%struct.point854) align 8 %1) #0 { + %3 = bitcast %struct.point854* %0 to i8* + %4 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef byval(%struct.point855) align 8 %1) #0 { + %3 = bitcast %struct.point855* %0 to i8* + %4 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef byval(%struct.point856) align 8 %1) #0 { + %3 = bitcast %struct.point856* %0 to i8* + %4 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo857(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point857, align 4 + %4 = alloca %struct.point857, align 4 + %5 = bitcast %struct.point857* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point857* %3 to i8* + %9 = bitcast %struct.point857* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point857* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef byval(%struct.point858) align 8 %1) #0 { + %3 = bitcast %struct.point858* %0 to i8* + %4 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef byval(%struct.point859) align 8 %1) #0 { + %3 = bitcast %struct.point859* %0 to i8* + %4 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef byval(%struct.point860) align 8 %1) #0 { + %3 = bitcast %struct.point860* %0 to i8* + %4 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef byval(%struct.point861) align 8 %1) #0 { + %3 = bitcast %struct.point861* %0 to i8* + %4 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo862(i64 %0, float %1) #0 { + %3 = alloca %struct.point862, align 4 + %4 = alloca %struct.point862, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point862* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point862* %3 to i8* + %12 = bitcast %struct.point862* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point862* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo863(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point863, align 4 + %4 = alloca %struct.point863, align 4 + %5 = bitcast %struct.point863* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point863* %3 to i8* + %9 = bitcast %struct.point863* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point863* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo864(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point864, align 4 + %4 = alloca %struct.point864, align 4 + %5 = bitcast %struct.point864* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point864* %3 to i8* + %9 = bitcast %struct.point864* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point864* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo865(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point865, align 4 + %4 = alloca %struct.point865, align 4 + %5 = bitcast %struct.point865* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point865* %3 to i8* + %9 = bitcast %struct.point865* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point865* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef byval(%struct.point866) align 8 %1) #0 { + %3 = bitcast %struct.point866* %0 to i8* + %4 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef byval(%struct.point867) align 8 %1) #0 { + %3 = bitcast %struct.point867* %0 to i8* + %4 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo868(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point868, align 4 + %4 = alloca %struct.point868, align 4 + %5 = bitcast %struct.point868* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point868* %3 to i8* + %9 = bitcast %struct.point868* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point868* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo869(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point869, align 4 + %4 = alloca %struct.point869, align 4 + %5 = bitcast %struct.point869* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point869* %3 to i8* + %9 = bitcast %struct.point869* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point869* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo870(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point870, align 4 + %4 = alloca %struct.point870, align 4 + %5 = bitcast %struct.point870* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point870* %3 to i8* + %9 = bitcast %struct.point870* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point870* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef byval(%struct.point871) align 8 %1) #0 { + %3 = bitcast %struct.point871* %0 to i8* + %4 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef byval(%struct.point872) align 8 %1) #0 { + %3 = bitcast %struct.point872* %0 to i8* + %4 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo873(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point873, align 4 + %4 = alloca %struct.point873, align 4 + %5 = bitcast %struct.point873* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point873* %3 to i8* + %9 = bitcast %struct.point873* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point873* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef byval(%struct.point874) align 8 %1) #0 { + %3 = bitcast %struct.point874* %0 to i8* + %4 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef byval(%struct.point875) align 8 %1) #0 { + %3 = bitcast %struct.point875* %0 to i8* + %4 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef byval(%struct.point876) align 8 %1) #0 { + %3 = bitcast %struct.point876* %0 to i8* + %4 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef byval(%struct.point877) align 8 %1) #0 { + %3 = bitcast %struct.point877* %0 to i8* + %4 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo878(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point878, align 4 + %4 = alloca %struct.point878, align 4 + %5 = bitcast %struct.point878* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point878* %3 to i8* + %9 = bitcast %struct.point878* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point878* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef byval(%struct.point879) align 8 %1) #0 { + %3 = bitcast %struct.point879* %0 to i8* + %4 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef byval(%struct.point880) align 8 %1) #0 { + %3 = bitcast %struct.point880* %0 to i8* + %4 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef byval(%struct.point881) align 8 %1) #0 { + %3 = bitcast %struct.point881* %0 to i8* + %4 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef byval(%struct.point882) align 8 %1) #0 { + %3 = bitcast %struct.point882* %0 to i8* + %4 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo883(i64 %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point883* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo884(i64 %0) #0 { + %2 = alloca %struct.point884, align 4 + %3 = alloca %struct.point884, align 4 + %4 = bitcast %struct.point884* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point884* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo885(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point885, align 4 + %4 = alloca %struct.point885, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point885* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point885* %3 to i8* + %12 = bitcast %struct.point885* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point885* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo886(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point886, align 4 + %4 = alloca %struct.point886, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point886* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point886* %3 to i8* + %12 = bitcast %struct.point886* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point886* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo887(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point887, align 4 + %4 = alloca %struct.point887, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point887* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point887* %3 to i8* + %12 = bitcast %struct.point887* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point887* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo888(i64 %0, float %1) #0 { + %3 = alloca %struct.point888, align 4 + %4 = alloca %struct.point888, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point888* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point888* %3 to i8* + %12 = bitcast %struct.point888* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point888* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo889(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point889, align 4 + %4 = alloca %struct.point889, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point889* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point889* %3 to i8* + %12 = bitcast %struct.point889* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point889* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo890(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point890, align 4 + %4 = alloca %struct.point890, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point890* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point890* %3 to i8* + %12 = bitcast %struct.point890* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point890* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo891(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point891, align 4 + %4 = alloca %struct.point891, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point891* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point891* %3 to i8* + %12 = bitcast %struct.point891* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point891* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo892(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point892, align 4 + %4 = alloca %struct.point892, align 4 + %5 = bitcast %struct.point892* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point892* %3 to i8* + %9 = bitcast %struct.point892* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point892* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo893(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point893, align 4 + %4 = alloca %struct.point893, align 4 + %5 = bitcast %struct.point893* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point893* %3 to i8* + %9 = bitcast %struct.point893* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point893* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo894(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point894, align 4 + %4 = alloca %struct.point894, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point894* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point894* %3 to i8* + %12 = bitcast %struct.point894* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point894* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo895(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point895, align 4 + %4 = alloca %struct.point895, align 4 + %5 = bitcast %struct.point895* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point895* %3 to i8* + %9 = bitcast %struct.point895* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point895* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo896(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point896, align 4 + %4 = alloca %struct.point896, align 4 + %5 = bitcast %struct.point896* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point896* %3 to i8* + %9 = bitcast %struct.point896* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point896* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo897(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point897, align 4 + %4 = alloca %struct.point897, align 4 + %5 = bitcast %struct.point897* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point897* %3 to i8* + %9 = bitcast %struct.point897* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point897* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo898(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point898, align 4 + %4 = alloca %struct.point898, align 4 + %5 = bitcast %struct.point898* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point898* %3 to i8* + %9 = bitcast %struct.point898* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point898* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo899(i64 %0, float %1) #0 { + %3 = alloca %struct.point899, align 4 + %4 = alloca %struct.point899, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point899* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point899* %3 to i8* + %12 = bitcast %struct.point899* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point899* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo900(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point900, align 4 + %4 = alloca %struct.point900, align 4 + %5 = bitcast %struct.point900* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point900* %3 to i8* + %9 = bitcast %struct.point900* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point900* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo901(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point901, align 4 + %4 = alloca %struct.point901, align 4 + %5 = bitcast %struct.point901* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point901* %3 to i8* + %9 = bitcast %struct.point901* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point901* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo902(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point902, align 4 + %4 = alloca %struct.point902, align 4 + %5 = bitcast %struct.point902* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point902* %3 to i8* + %9 = bitcast %struct.point902* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point902* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo903(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point903, align 4 + %4 = alloca %struct.point903, align 4 + %5 = bitcast %struct.point903* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point903* %3 to i8* + %9 = bitcast %struct.point903* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point903* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo904(i64 %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point904* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo905(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point905, align 4 + %4 = alloca %struct.point905, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point905* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point905* %3 to i8* + %12 = bitcast %struct.point905* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point905* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo906(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point906, align 4 + %4 = alloca %struct.point906, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point906* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point906* %3 to i8* + %12 = bitcast %struct.point906* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point906* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo907(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point907, align 4 + %4 = alloca %struct.point907, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point907* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point907* %3 to i8* + %12 = bitcast %struct.point907* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point907* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo908(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point908, align 4 + %4 = alloca %struct.point908, align 4 + %5 = bitcast %struct.point908* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point908* %3 to i8* + %9 = bitcast %struct.point908* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point908* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo909(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point909, align 4 + %4 = alloca %struct.point909, align 4 + %5 = bitcast %struct.point909* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point909* %3 to i8* + %9 = bitcast %struct.point909* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point909* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo910(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point910, align 4 + %4 = alloca %struct.point910, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point910* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point910* %3 to i8* + %12 = bitcast %struct.point910* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point910* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo911(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point911, align 4 + %4 = alloca %struct.point911, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point911* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point911* %3 to i8* + %12 = bitcast %struct.point911* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point911* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo912(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point912, align 4 + %4 = alloca %struct.point912, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point912* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point912* %3 to i8* + %12 = bitcast %struct.point912* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point912* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo913(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point913, align 4 + %4 = alloca %struct.point913, align 4 + %5 = bitcast %struct.point913* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point913* %3 to i8* + %9 = bitcast %struct.point913* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point913* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo914(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point914, align 4 + %4 = alloca %struct.point914, align 4 + %5 = bitcast %struct.point914* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point914* %3 to i8* + %9 = bitcast %struct.point914* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point914* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo915(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point915, align 4 + %4 = alloca %struct.point915, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point915* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point915* %3 to i8* + %12 = bitcast %struct.point915* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point915* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo916(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point916, align 4 + %4 = alloca %struct.point916, align 4 + %5 = bitcast %struct.point916* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point916* %3 to i8* + %9 = bitcast %struct.point916* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point916* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo917(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point917, align 4 + %4 = alloca %struct.point917, align 4 + %5 = bitcast %struct.point917* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point917* %3 to i8* + %9 = bitcast %struct.point917* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point917* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo918(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point918, align 4 + %4 = alloca %struct.point918, align 4 + %5 = bitcast %struct.point918* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point918* %3 to i8* + %9 = bitcast %struct.point918* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point918* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo919(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point919, align 4 + %4 = alloca %struct.point919, align 4 + %5 = bitcast %struct.point919* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point919* %3 to i8* + %9 = bitcast %struct.point919* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point919* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo920(i64 %0, float %1) #0 { + %3 = alloca %struct.point920, align 4 + %4 = alloca %struct.point920, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point920* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point920* %3 to i8* + %12 = bitcast %struct.point920* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point920* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo921(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point921, align 4 + %4 = alloca %struct.point921, align 4 + %5 = bitcast %struct.point921* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point921* %3 to i8* + %9 = bitcast %struct.point921* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point921* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo922(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point922, align 4 + %4 = alloca %struct.point922, align 4 + %5 = bitcast %struct.point922* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point922* %3 to i8* + %9 = bitcast %struct.point922* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point922* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo923(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point923, align 4 + %4 = alloca %struct.point923, align 4 + %5 = bitcast %struct.point923* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point923* %3 to i8* + %9 = bitcast %struct.point923* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point923* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo924(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point924, align 4 + %4 = alloca %struct.point924, align 4 + %5 = bitcast %struct.point924* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point924* %3 to i8* + %9 = bitcast %struct.point924* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point924* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo925(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point925, align 4 + %4 = alloca %struct.point925, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point925* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point925* %3 to i8* + %12 = bitcast %struct.point925* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point925* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo926(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point926, align 4 + %4 = alloca %struct.point926, align 4 + %5 = bitcast %struct.point926* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point926* %3 to i8* + %9 = bitcast %struct.point926* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point926* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo927(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point927, align 4 + %4 = alloca %struct.point927, align 4 + %5 = bitcast %struct.point927* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point927* %3 to i8* + %9 = bitcast %struct.point927* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point927* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo928(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point928, align 4 + %4 = alloca %struct.point928, align 4 + %5 = bitcast %struct.point928* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point928* %3 to i8* + %9 = bitcast %struct.point928* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point928* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef byval(%struct.point929) align 8 %1) #0 { + %3 = bitcast %struct.point929* %0 to i8* + %4 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef byval(%struct.point930) align 8 %1) #0 { + %3 = bitcast %struct.point930* %0 to i8* + %4 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo931(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point931, align 4 + %4 = alloca %struct.point931, align 4 + %5 = bitcast %struct.point931* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point931* %3 to i8* + %9 = bitcast %struct.point931* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point931* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo932(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point932, align 4 + %4 = alloca %struct.point932, align 4 + %5 = bitcast %struct.point932* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point932* %3 to i8* + %9 = bitcast %struct.point932* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point932* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo933(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point933, align 4 + %4 = alloca %struct.point933, align 4 + %5 = bitcast %struct.point933* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point933* %3 to i8* + %9 = bitcast %struct.point933* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point933* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef byval(%struct.point934) align 8 %1) #0 { + %3 = bitcast %struct.point934* %0 to i8* + %4 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef byval(%struct.point935) align 8 %1) #0 { + %3 = bitcast %struct.point935* %0 to i8* + %4 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo936(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point936, align 4 + %4 = alloca %struct.point936, align 4 + %5 = bitcast %struct.point936* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point936* %3 to i8* + %9 = bitcast %struct.point936* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point936* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef byval(%struct.point937) align 8 %1) #0 { + %3 = bitcast %struct.point937* %0 to i8* + %4 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef byval(%struct.point938) align 8 %1) #0 { + %3 = bitcast %struct.point938* %0 to i8* + %4 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef byval(%struct.point939) align 8 %1) #0 { + %3 = bitcast %struct.point939* %0 to i8* + %4 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef byval(%struct.point940) align 8 %1) #0 { + %3 = bitcast %struct.point940* %0 to i8* + %4 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo941(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point941, align 4 + %4 = alloca %struct.point941, align 4 + %5 = bitcast %struct.point941* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point941* %3 to i8* + %9 = bitcast %struct.point941* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point941* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef byval(%struct.point942) align 8 %1) #0 { + %3 = bitcast %struct.point942* %0 to i8* + %4 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef byval(%struct.point943) align 8 %1) #0 { + %3 = bitcast %struct.point943* %0 to i8* + %4 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef byval(%struct.point944) align 8 %1) #0 { + %3 = bitcast %struct.point944* %0 to i8* + %4 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef byval(%struct.point945) align 8 %1) #0 { + %3 = bitcast %struct.point945* %0 to i8* + %4 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo946(i64 %0, float %1) #0 { + %3 = alloca %struct.point946, align 4 + %4 = alloca %struct.point946, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point946* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point946* %3 to i8* + %12 = bitcast %struct.point946* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point946* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo947(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point947, align 4 + %4 = alloca %struct.point947, align 4 + %5 = bitcast %struct.point947* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point947* %3 to i8* + %9 = bitcast %struct.point947* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point947* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo948(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point948, align 4 + %4 = alloca %struct.point948, align 4 + %5 = bitcast %struct.point948* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point948* %3 to i8* + %9 = bitcast %struct.point948* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point948* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo949(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point949, align 4 + %4 = alloca %struct.point949, align 4 + %5 = bitcast %struct.point949* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point949* %3 to i8* + %9 = bitcast %struct.point949* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point949* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef byval(%struct.point950) align 8 %1) #0 { + %3 = bitcast %struct.point950* %0 to i8* + %4 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef byval(%struct.point951) align 8 %1) #0 { + %3 = bitcast %struct.point951* %0 to i8* + %4 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo952(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point952, align 4 + %4 = alloca %struct.point952, align 4 + %5 = bitcast %struct.point952* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point952* %3 to i8* + %9 = bitcast %struct.point952* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point952* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo953(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point953, align 4 + %4 = alloca %struct.point953, align 4 + %5 = bitcast %struct.point953* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point953* %3 to i8* + %9 = bitcast %struct.point953* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point953* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo954(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point954, align 4 + %4 = alloca %struct.point954, align 4 + %5 = bitcast %struct.point954* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point954* %3 to i8* + %9 = bitcast %struct.point954* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point954* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef byval(%struct.point955) align 8 %1) #0 { + %3 = bitcast %struct.point955* %0 to i8* + %4 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef byval(%struct.point956) align 8 %1) #0 { + %3 = bitcast %struct.point956* %0 to i8* + %4 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo957(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point957, align 4 + %4 = alloca %struct.point957, align 4 + %5 = bitcast %struct.point957* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point957* %3 to i8* + %9 = bitcast %struct.point957* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point957* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef byval(%struct.point958) align 8 %1) #0 { + %3 = bitcast %struct.point958* %0 to i8* + %4 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef byval(%struct.point959) align 8 %1) #0 { + %3 = bitcast %struct.point959* %0 to i8* + %4 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef byval(%struct.point960) align 8 %1) #0 { + %3 = bitcast %struct.point960* %0 to i8* + %4 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef byval(%struct.point961) align 8 %1) #0 { + %3 = bitcast %struct.point961* %0 to i8* + %4 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo962(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point962, align 4 + %4 = alloca %struct.point962, align 4 + %5 = bitcast %struct.point962* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point962* %3 to i8* + %9 = bitcast %struct.point962* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point962* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef byval(%struct.point963) align 8 %1) #0 { + %3 = bitcast %struct.point963* %0 to i8* + %4 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef byval(%struct.point964) align 8 %1) #0 { + %3 = bitcast %struct.point964* %0 to i8* + %4 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef byval(%struct.point965) align 8 %1) #0 { + %3 = bitcast %struct.point965* %0 to i8* + %4 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef byval(%struct.point966) align 8 %1) #0 { + %3 = bitcast %struct.point966* %0 to i8* + %4 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i8 } @demo967(i64 %0, i8 %1) #0 { + %3 = alloca %struct.point967, align 4 + %4 = alloca %struct.point967, align 4 + %5 = alloca { i64, i8 }, align 4 + %6 = alloca { i64, i8 }, align 8 + %7 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i8 }, { i64, i8 }* %5, i32 0, i32 1 + store i8 %1, i8* %8, align 4 + %9 = bitcast %struct.point967* %4 to i8* + %10 = bitcast { i64, i8 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point967* %3 to i8* + %12 = bitcast %struct.point967* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i8 }* %6 to i8* + %14 = bitcast %struct.point967* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i8 }, { i64, i8 }* %6, align 8 + ret { i64, i8 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo968(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point968, align 4 + %4 = alloca %struct.point968, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point968* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point968* %3 to i8* + %12 = bitcast %struct.point968* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point968* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo969(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point969, align 4 + %4 = alloca %struct.point969, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point969* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point969* %3 to i8* + %12 = bitcast %struct.point969* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point969* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo970(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point970, align 4 + %4 = alloca %struct.point970, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point970* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point970* %3 to i8* + %12 = bitcast %struct.point970* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point970* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo971(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point971, align 4 + %4 = alloca %struct.point971, align 4 + %5 = bitcast %struct.point971* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point971* %3 to i8* + %9 = bitcast %struct.point971* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point971* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo972(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point972, align 4 + %4 = alloca %struct.point972, align 4 + %5 = bitcast %struct.point972* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point972* %3 to i8* + %9 = bitcast %struct.point972* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point972* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo973(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point973, align 4 + %4 = alloca %struct.point973, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point973* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point973* %3 to i8* + %12 = bitcast %struct.point973* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point973* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo974(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point974, align 4 + %4 = alloca %struct.point974, align 4 + %5 = bitcast %struct.point974* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point974* %3 to i8* + %9 = bitcast %struct.point974* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point974* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo975(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point975, align 4 + %4 = alloca %struct.point975, align 4 + %5 = bitcast %struct.point975* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point975* %3 to i8* + %9 = bitcast %struct.point975* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point975* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo976(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point976, align 4 + %4 = alloca %struct.point976, align 4 + %5 = bitcast %struct.point976* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point976* %3 to i8* + %9 = bitcast %struct.point976* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point976* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo977(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point977, align 4 + %4 = alloca %struct.point977, align 4 + %5 = bitcast %struct.point977* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point977* %3 to i8* + %9 = bitcast %struct.point977* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point977* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo978(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point978, align 4 + %4 = alloca %struct.point978, align 4 + %5 = bitcast %struct.point978* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point978* %3 to i8* + %9 = bitcast %struct.point978* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point978* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef byval(%struct.point979) align 8 %1) #0 { + %3 = bitcast %struct.point979* %0 to i8* + %4 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef byval(%struct.point980) align 8 %1) #0 { + %3 = bitcast %struct.point980* %0 to i8* + %4 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef byval(%struct.point981) align 8 %1) #0 { + %3 = bitcast %struct.point981* %0 to i8* + %4 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef byval(%struct.point982) align 8 %1) #0 { + %3 = bitcast %struct.point982* %0 to i8* + %4 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo983(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point983, align 4 + %4 = alloca %struct.point983, align 4 + %5 = bitcast %struct.point983* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point983* %3 to i8* + %9 = bitcast %struct.point983* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point983* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef byval(%struct.point984) align 8 %1) #0 { + %3 = bitcast %struct.point984* %0 to i8* + %4 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef byval(%struct.point985) align 8 %1) #0 { + %3 = bitcast %struct.point985* %0 to i8* + %4 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef byval(%struct.point986) align 8 %1) #0 { + %3 = bitcast %struct.point986* %0 to i8* + %4 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef byval(%struct.point987) align 8 %1) #0 { + %3 = bitcast %struct.point987* %0 to i8* + %4 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i16 } @demo988(i64 %0, i16 %1) #0 { + %3 = alloca %struct.point988, align 4 + %4 = alloca %struct.point988, align 4 + %5 = alloca { i64, i16 }, align 4 + %6 = alloca { i64, i16 }, align 8 + %7 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i16 }, { i64, i16 }* %5, i32 0, i32 1 + store i16 %1, i16* %8, align 4 + %9 = bitcast %struct.point988* %4 to i8* + %10 = bitcast { i64, i16 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point988* %3 to i8* + %12 = bitcast %struct.point988* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i16 }* %6 to i8* + %14 = bitcast %struct.point988* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i16 }, { i64, i16 }* %6, align 8 + ret { i64, i16 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo989(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point989, align 4 + %4 = alloca %struct.point989, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point989* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point989* %3 to i8* + %12 = bitcast %struct.point989* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point989* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo990(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point990, align 4 + %4 = alloca %struct.point990, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point990* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point990* %3 to i8* + %12 = bitcast %struct.point990* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point990* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo991(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point991, align 4 + %4 = alloca %struct.point991, align 4 + %5 = bitcast %struct.point991* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point991* %3 to i8* + %9 = bitcast %struct.point991* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point991* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo992(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point992, align 4 + %4 = alloca %struct.point992, align 4 + %5 = bitcast %struct.point992* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point992* %3 to i8* + %9 = bitcast %struct.point992* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point992* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo993(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point993, align 4 + %4 = alloca %struct.point993, align 4 + %5 = bitcast %struct.point993* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point993* %3 to i8* + %9 = bitcast %struct.point993* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point993* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo994(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point994, align 4 + %4 = alloca %struct.point994, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point994* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point994* %3 to i8* + %12 = bitcast %struct.point994* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point994* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo995(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point995, align 4 + %4 = alloca %struct.point995, align 4 + %5 = bitcast %struct.point995* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point995* %3 to i8* + %9 = bitcast %struct.point995* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point995* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo996(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point996, align 4 + %4 = alloca %struct.point996, align 4 + %5 = bitcast %struct.point996* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point996* %3 to i8* + %9 = bitcast %struct.point996* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point996* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo997(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point997, align 4 + %4 = alloca %struct.point997, align 4 + %5 = bitcast %struct.point997* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point997* %3 to i8* + %9 = bitcast %struct.point997* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point997* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo998(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point998, align 4 + %4 = alloca %struct.point998, align 4 + %5 = bitcast %struct.point998* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point998* %3 to i8* + %9 = bitcast %struct.point998* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point998* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo999(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point999, align 4 + %4 = alloca %struct.point999, align 4 + %5 = bitcast %struct.point999* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point999* %3 to i8* + %9 = bitcast %struct.point999* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point999* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef byval(%struct.point1000) align 8 %1) #0 { + %3 = bitcast %struct.point1000* %0 to i8* + %4 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef byval(%struct.point1001) align 8 %1) #0 { + %3 = bitcast %struct.point1001* %0 to i8* + %4 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef byval(%struct.point1002) align 8 %1) #0 { + %3 = bitcast %struct.point1002* %0 to i8* + %4 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef byval(%struct.point1003) align 8 %1) #0 { + %3 = bitcast %struct.point1003* %0 to i8* + %4 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1004(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1004, align 4 + %4 = alloca %struct.point1004, align 4 + %5 = bitcast %struct.point1004* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1004* %3 to i8* + %9 = bitcast %struct.point1004* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1004* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef byval(%struct.point1005) align 8 %1) #0 { + %3 = bitcast %struct.point1005* %0 to i8* + %4 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef byval(%struct.point1006) align 8 %1) #0 { + %3 = bitcast %struct.point1006* %0 to i8* + %4 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef byval(%struct.point1007) align 8 %1) #0 { + %3 = bitcast %struct.point1007* %0 to i8* + %4 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef byval(%struct.point1008) align 8 %1) #0 { + %3 = bitcast %struct.point1008* %0 to i8* + %4 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i32 } @demo1009(i64 %0, i32 %1) #0 { + %3 = alloca %struct.point1009, align 4 + %4 = alloca %struct.point1009, align 4 + %5 = alloca { i64, i32 }, align 4 + %6 = alloca { i64, i32 }, align 8 + %7 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %5, i32 0, i32 1 + store i32 %1, i32* %8, align 4 + %9 = bitcast %struct.point1009* %4 to i8* + %10 = bitcast { i64, i32 }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point1009* %3 to i8* + %12 = bitcast %struct.point1009* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, i32 }* %6 to i8* + %14 = bitcast %struct.point1009* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, i32 }, { i64, i32 }* %6, align 8 + ret { i64, i32 } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1010(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1010, align 4 + %4 = alloca %struct.point1010, align 4 + %5 = bitcast %struct.point1010* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1010* %3 to i8* + %9 = bitcast %struct.point1010* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1010* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1011(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1011, align 4 + %4 = alloca %struct.point1011, align 4 + %5 = bitcast %struct.point1011* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1011* %3 to i8* + %9 = bitcast %struct.point1011* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1011* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1012(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1012, align 4 + %4 = alloca %struct.point1012, align 4 + %5 = bitcast %struct.point1012* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1012* %3 to i8* + %9 = bitcast %struct.point1012* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1012* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef byval(%struct.point1013) align 8 %1) #0 { + %3 = bitcast %struct.point1013* %0 to i8* + %4 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef byval(%struct.point1014) align 8 %1) #0 { + %3 = bitcast %struct.point1014* %0 to i8* + %4 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1015(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1015, align 4 + %4 = alloca %struct.point1015, align 4 + %5 = bitcast %struct.point1015* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1015* %3 to i8* + %9 = bitcast %struct.point1015* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1015* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1016(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1016, align 4 + %4 = alloca %struct.point1016, align 4 + %5 = bitcast %struct.point1016* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1016* %3 to i8* + %9 = bitcast %struct.point1016* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1016* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1017(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1017, align 4 + %4 = alloca %struct.point1017, align 4 + %5 = bitcast %struct.point1017* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1017* %3 to i8* + %9 = bitcast %struct.point1017* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1017* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef byval(%struct.point1018) align 8 %1) #0 { + %3 = bitcast %struct.point1018* %0 to i8* + %4 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef byval(%struct.point1019) align 8 %1) #0 { + %3 = bitcast %struct.point1019* %0 to i8* + %4 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1020(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1020, align 4 + %4 = alloca %struct.point1020, align 4 + %5 = bitcast %struct.point1020* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1020* %3 to i8* + %9 = bitcast %struct.point1020* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1020* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef byval(%struct.point1021) align 8 %1) #0 { + %3 = bitcast %struct.point1021* %0 to i8* + %4 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef byval(%struct.point1022) align 8 %1) #0 { + %3 = bitcast %struct.point1022* %0 to i8* + %4 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef byval(%struct.point1023) align 8 %1) #0 { + %3 = bitcast %struct.point1023* %0 to i8* + %4 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef byval(%struct.point1024) align 8 %1) #0 { + %3 = bitcast %struct.point1024* %0 to i8* + %4 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1025(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1025, align 4 + %4 = alloca %struct.point1025, align 4 + %5 = bitcast %struct.point1025* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1025* %3 to i8* + %9 = bitcast %struct.point1025* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1025* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef byval(%struct.point1026) align 8 %1) #0 { + %3 = bitcast %struct.point1026* %0 to i8* + %4 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef byval(%struct.point1027) align 8 %1) #0 { + %3 = bitcast %struct.point1027* %0 to i8* + %4 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef byval(%struct.point1028) align 8 %1) #0 { + %3 = bitcast %struct.point1028* %0 to i8* + %4 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef byval(%struct.point1029) align 8 %1) #0 { + %3 = bitcast %struct.point1029* %0 to i8* + %4 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, float } @demo1030(i64 %0, float %1) #0 { + %3 = alloca %struct.point1030, align 4 + %4 = alloca %struct.point1030, align 4 + %5 = alloca { i64, float }, align 4 + %6 = alloca { i64, float }, align 8 + %7 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 0 + store i64 %0, i64* %7, align 4 + %8 = getelementptr inbounds { i64, float }, { i64, float }* %5, i32 0, i32 1 + store float %1, float* %8, align 4 + %9 = bitcast %struct.point1030* %4 to i8* + %10 = bitcast { i64, float }* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = bitcast %struct.point1030* %3 to i8* + %12 = bitcast %struct.point1030* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 12, i1 false) + %13 = bitcast { i64, float }* %6 to i8* + %14 = bitcast %struct.point1030* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %13, i8* align 4 %14, i64 12, i1 false) + %15 = load { i64, float }, { i64, float }* %6, align 8 + ret { i64, float } %15 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1031(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1031, align 4 + %4 = alloca %struct.point1031, align 4 + %5 = bitcast %struct.point1031* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1031* %3 to i8* + %9 = bitcast %struct.point1031* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1031* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1032(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1032, align 4 + %4 = alloca %struct.point1032, align 4 + %5 = bitcast %struct.point1032* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1032* %3 to i8* + %9 = bitcast %struct.point1032* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1032* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1033(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1033, align 4 + %4 = alloca %struct.point1033, align 4 + %5 = bitcast %struct.point1033* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1033* %3 to i8* + %9 = bitcast %struct.point1033* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1033* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef byval(%struct.point1034) align 8 %1) #0 { + %3 = bitcast %struct.point1034* %0 to i8* + %4 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef byval(%struct.point1035) align 8 %1) #0 { + %3 = bitcast %struct.point1035* %0 to i8* + %4 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1036(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1036, align 4 + %4 = alloca %struct.point1036, align 4 + %5 = bitcast %struct.point1036* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1036* %3 to i8* + %9 = bitcast %struct.point1036* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1036* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1037(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1037, align 4 + %4 = alloca %struct.point1037, align 4 + %5 = bitcast %struct.point1037* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1037* %3 to i8* + %9 = bitcast %struct.point1037* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1037* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1038(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1038, align 4 + %4 = alloca %struct.point1038, align 4 + %5 = bitcast %struct.point1038* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1038* %3 to i8* + %9 = bitcast %struct.point1038* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1038* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef byval(%struct.point1039) align 8 %1) #0 { + %3 = bitcast %struct.point1039* %0 to i8* + %4 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef byval(%struct.point1040) align 8 %1) #0 { + %3 = bitcast %struct.point1040* %0 to i8* + %4 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, i64 } @demo1041(i64 %0, i64 %1) #0 { + %3 = alloca %struct.point1041, align 4 + %4 = alloca %struct.point1041, align 4 + %5 = bitcast %struct.point1041* %4 to { i64, i64 }* + %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %5, i32 0, i32 1 + store i64 %1, i64* %7, align 4 + %8 = bitcast %struct.point1041* %3 to i8* + %9 = bitcast %struct.point1041* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1041* %3 to { i64, i64 }* + %11 = load { i64, i64 }, { i64, i64 }* %10, align 4 + ret { i64, i64 } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef byval(%struct.point1042) align 8 %1) #0 { + %3 = bitcast %struct.point1042* %0 to i8* + %4 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef byval(%struct.point1043) align 8 %1) #0 { + %3 = bitcast %struct.point1043* %0 to i8* + %4 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef byval(%struct.point1044) align 8 %1) #0 { + %3 = bitcast %struct.point1044* %0 to i8* + %4 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef byval(%struct.point1045) align 8 %1) #0 { + %3 = bitcast %struct.point1045* %0 to i8* + %4 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i64, <2 x float> } @demo1046(i64 %0, <2 x float> %1) #2 { + %3 = alloca %struct.point1046, align 4 + %4 = alloca %struct.point1046, align 4 + %5 = bitcast %struct.point1046* %4 to { i64, <2 x float> }* + %6 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 0 + store i64 %0, i64* %6, align 4 + %7 = getelementptr inbounds { i64, <2 x float> }, { i64, <2 x float> }* %5, i32 0, i32 1 + store <2 x float> %1, <2 x float>* %7, align 4 + %8 = bitcast %struct.point1046* %3 to i8* + %9 = bitcast %struct.point1046* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 16, i1 false) + %10 = bitcast %struct.point1046* %3 to { i64, <2 x float> }* + %11 = load { i64, <2 x float> }, { i64, <2 x float> }* %10, align 4 + ret { i64, <2 x float> } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef byval(%struct.point1047) align 8 %1) #0 { + %3 = bitcast %struct.point1047* %0 to i8* + %4 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef byval(%struct.point1048) align 8 %1) #0 { + %3 = bitcast %struct.point1048* %0 to i8* + %4 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef byval(%struct.point1049) align 8 %1) #0 { + %3 = bitcast %struct.point1049* %0 to i8* + %4 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef byval(%struct.point1050) align 8 %1) #0 { + %3 = bitcast %struct.point1050* %0 to i8* + %4 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 8 %4, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } +attributes #2 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/amd64/struct_uintptr.ll b/internal/cabi/_testdata/arch/amd64/struct_uintptr.ll new file mode 100644 index 00000000..1eb9e86c --- /dev/null +++ b/internal/cabi/_testdata/arch/amd64/struct_uintptr.ll @@ -0,0 +1,216 @@ +; ModuleID = '../../wrap/struct_uintptr.c' +source_filename = "../../wrap/struct_uintptr.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "amd64-unknown-linux-gnu" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8* @demo1(i8* %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i8* %0, i8** %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i8*, i8** %7, align 8 + ret i8* %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local { i8*, i8* } @demo2(i8* %0, i8* %1) #0 { + %3 = alloca %struct.point2, align 8 + %4 = alloca %struct.point2, align 8 + %5 = bitcast %struct.point2* %4 to { i8*, i8* }* + %6 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 0 + store i8* %0, i8** %6, align 8 + %7 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %5, i32 0, i32 1 + store i8* %1, i8** %7, align 8 + %8 = bitcast %struct.point2* %3 to i8* + %9 = bitcast %struct.point2* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %8, i8* align 8 %9, i64 16, i1 false) + %10 = bitcast %struct.point2* %3 to { i8*, i8* }* + %11 = load { i8*, i8* }, { i8*, i8* }* %10, align 8 + ret { i8*, i8* } %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef byval(%struct.point3) align 8 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef byval(%struct.point4) align 8 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef byval(%struct.point6) align 8 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef byval(%struct.point7) align 8 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef byval(%struct.point8) align 8 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 2} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_float32.ll b/internal/cabi/_testdata/arch/arm64/array_float32.ll new file mode 100644 index 00000000..1d005bf8 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_float32.ll @@ -0,0 +1,225 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array1 @demo1([1 x float] %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store [1 x float] %0, [1 x float]* %4, align 4 + %5 = bitcast %struct.array1* %2 to i8* + %6 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 4, i1 false) + %7 = load %struct.array1, %struct.array1* %2, align 4 + ret %struct.array1 %7 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array2 @demo2([2 x float] %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x float] %0, [2 x float]* %4, align 4 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = load %struct.array2, %struct.array2* %2, align 4 + ret %struct.array2 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array3 @demo3([3 x float] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [3 x float] %0, [3 x float]* %4, align 4 + %5 = bitcast %struct.array3* %2 to i8* + %6 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 12, i1 false) + %7 = load %struct.array3, %struct.array3* %2, align 4 + ret %struct.array3 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array4 @demo4([4 x float] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store [4 x float] %0, [4 x float]* %4, align 4 + %5 = bitcast %struct.array4* %2 to i8* + %6 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = load %struct.array4, %struct.array4* %2, align 4 + ret %struct.array4 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_float64.ll b/internal/cabi/_testdata/arch/arm64/array_float64.ll new file mode 100644 index 00000000..a82bb215 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_float64.ll @@ -0,0 +1,225 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array1 @demo1([1 x double] %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store [1 x double] %0, [1 x double]* %4, align 8 + %5 = bitcast %struct.array1* %2 to i8* + %6 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = load %struct.array1, %struct.array1* %2, align 8 + ret %struct.array1 %7 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array2 @demo2([2 x double] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x double] %0, [2 x double]* %4, align 8 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = load %struct.array2, %struct.array2* %2, align 8 + ret %struct.array2 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array3 @demo3([3 x double] %0) #0 { + %2 = alloca %struct.array3, align 8 + %3 = alloca %struct.array3, align 8 + %4 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [3 x double] %0, [3 x double]* %4, align 8 + %5 = bitcast %struct.array3* %2 to i8* + %6 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + %7 = load %struct.array3, %struct.array3* %2, align 8 + ret %struct.array3 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.array4 @demo4([4 x double] %0) #0 { + %2 = alloca %struct.array4, align 8 + %3 = alloca %struct.array4, align 8 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store [4 x double] %0, [4 x double]* %4, align 8 + %5 = bitcast %struct.array4* %2 to i8* + %6 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + %7 = load %struct.array4, %struct.array4* %2, align 8 + ret %struct.array4 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_int16.ll b/internal/cabi/_testdata/arch/arm64/array_int16.ll new file mode 100644 index 00000000..ea3c40a8 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_int16.ll @@ -0,0 +1,299 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i64, align 8 + %5 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %6 = bitcast [1 x i16]* %5 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 2, i1 false) + %8 = bitcast %struct.array1* %2 to i8* + %9 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 2, i1 false) + %10 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %11 = bitcast [1 x i16]* %10 to i16* + %12 = load i16, i16* %11, align 2 + ret i16 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = alloca i64, align 8 + %5 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %6 = bitcast [2 x i16]* %5 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.array2* %2 to i8* + %9 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %11 = bitcast [2 x i16]* %10 to i32* + %12 = load i32, i32* %11, align 2 + ret i32 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 2 + %3 = alloca %struct.array3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i48* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 6, i1 false) + %14 = load i48, i48* %5, align 8 + ret i48 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 2 + %3 = alloca %struct.array4, align 2 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to i64* + store i64 %0, i64* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to i64* + %10 = load i64, i64* %9, align 2 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.array5, align 2 + %3 = alloca %struct.array5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [5 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [5 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.array6, align 2 + %3 = alloca %struct.array6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [6 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [6 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.array7, align 2 + %3 = alloca %struct.array7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [7 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [7 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.array8, align 2 + %3 = alloca %struct.array8, align 2 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i16]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 2 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i16]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 2 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_int32.ll b/internal/cabi/_testdata/arch/arm64/array_int32.ll new file mode 100644 index 00000000..be330c4f --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_int32.ll @@ -0,0 +1,246 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = alloca i64, align 8 + %5 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %6 = bitcast [1 x i32]* %5 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.array1* %2 to i8* + %9 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 4, i1 false) + %10 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %11 = bitcast [1 x i32]* %10 to i32* + %12 = load i32, i32* %11, align 4 + ret i32 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i32]* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i32]* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [3 x i32]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [3 x i32]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i32]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 4 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i32]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 4 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_int64.ll b/internal/cabi/_testdata/arch/arm64/array_int64.ll new file mode 100644 index 00000000..f65dcef6 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_int64.ll @@ -0,0 +1,219 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_int8.ll b/internal/cabi/_testdata/arch/arm64/array_int8.ll new file mode 100644 index 00000000..8f539ce5 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_int8.ll @@ -0,0 +1,408 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i64, align 8 + %5 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %6 = bitcast [1 x i8]* %5 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 1, i1 false) + %8 = bitcast %struct.array1* %2 to i8* + %9 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 1, i1 false) + %10 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %11 = bitcast [1 x i8]* %10 to i8* + %12 = load i8, i8* %11, align 1 + ret i8 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i64, align 8 + %5 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %6 = bitcast [2 x i8]* %5 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 2, i1 false) + %8 = bitcast %struct.array2* %2 to i8* + %9 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 2, i1 false) + %10 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %11 = bitcast [2 x i8]* %10 to i16* + %12 = load i16, i16* %11, align 1 + ret i16 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i24 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 1 + %3 = alloca %struct.array3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i24, align 4 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i24* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %12, i8* align 1 %13, i64 3, i1 false) + %14 = load i24, i24* %5, align 4 + ret i24 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = alloca i64, align 8 + %5 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %6 = bitcast [4 x i8]* %5 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.array4* %2 to i8* + %9 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 4, i1 false) + %10 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %11 = bitcast [4 x i8]* %10 to i32* + %12 = load i32, i32* %11, align 1 + ret i32 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i40 @demo5(i64 %0) #0 { + %2 = alloca %struct.array5, align 1 + %3 = alloca %struct.array5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i40, align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast i40* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 5, i1 false) + %14 = load i40, i40* %5, align 8 + ret i40 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo6(i64 %0) #0 { + %2 = alloca %struct.array6, align 1 + %3 = alloca %struct.array6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast i48* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 6, i1 false) + %14 = load i48, i48* %5, align 8 + ret i48 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i56 @demo7(i64 %0) #0 { + %2 = alloca %struct.array7, align 1 + %3 = alloca %struct.array7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i56, align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast i56* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 7, i1 false) + %14 = load i56, i56* %5, align 8 + ret i56 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.array8, align 1 + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to i64* + store i64 %0, i64* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to i64* + %10 = load i64, i64* %9, align 1 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.array9, align 1 + %3 = alloca %struct.array9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [9 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 9, i1 false) + %9 = bitcast %struct.array9* %2 to i8* + %10 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 9, i1 false) + %11 = getelementptr inbounds %struct.array9, %struct.array9* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [9 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 9, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.array10, align 1 + %3 = alloca %struct.array10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [10 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array10* %2 to i8* + %10 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [10 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.array11, align 1 + %3 = alloca %struct.array11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [11 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 11, i1 false) + %9 = bitcast %struct.array11* %2 to i8* + %10 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 11, i1 false) + %11 = getelementptr inbounds %struct.array11, %struct.array11* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [11 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 11, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.array12, align 1 + %3 = alloca %struct.array12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [12 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array12* %2 to i8* + %10 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array12, %struct.array12* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [12 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.array13, align 1 + %3 = alloca %struct.array13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [13 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 13, i1 false) + %9 = bitcast %struct.array13* %2 to i8* + %10 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 13, i1 false) + %11 = getelementptr inbounds %struct.array13, %struct.array13* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [13 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 13, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.array14, align 1 + %3 = alloca %struct.array14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [14 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array14* %2 to i8* + %10 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array14, %struct.array14* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [14 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.array15, align 1 + %3 = alloca %struct.array15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [15 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 15, i1 false) + %9 = bitcast %struct.array15* %2 to i8* + %10 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 15, i1 false) + %11 = getelementptr inbounds %struct.array15, %struct.array15* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [15 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 15, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.array16, align 1 + %3 = alloca %struct.array16, align 1 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i8]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 1 + %6 = bitcast %struct.array16* %2 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array16, %struct.array16* %2, i32 0, i32 0 + %9 = bitcast [16 x i8]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 1 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_pointer.ll b/internal/cabi/_testdata/arch/arm64/array_pointer.ll new file mode 100644 index 00000000..c6e43e0e --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_pointer.ll @@ -0,0 +1,221 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 8 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 8 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/array_uintptr.ll b/internal/cabi/_testdata/arch/arm64/array_uintptr.ll new file mode 100644 index 00000000..47786df5 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/array_uintptr.ll @@ -0,0 +1,221 @@ +; ModuleID = '../../wrap/array_uintptr.c' +source_filename = "../../wrap/array_uintptr.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 8 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 8 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/basic.ll b/internal/cabi/_testdata/arch/arm64/basic.ll new file mode 100644 index 00000000..1575fdcf --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/basic.ll @@ -0,0 +1,76 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8 @basic_int8(i8 noundef %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @basic_int16(i16 noundef %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { + %2 = alloca i8*, align 8 + store i8* %0, i8** %2, align 8 + %3 = load i8*, i8** %2, align 8 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/composite.ll b/internal/cabi/_testdata/arch/arm64/composite.ll new file mode 100644 index 00000000..fb98e086 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/composite.ll @@ -0,0 +1,177 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo_array10(i64 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = alloca i64, align 8 + %5 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %6 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %5, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i32]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array10* %2 to i8* + %10 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %12 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %11, i32 0, i32 0 + %13 = bitcast [1 x i32]* %12 to i32* + %14 = load i32, i32* %13, align 4 + ret i32 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_array11(i64 %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.array11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo_point10(i64 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = getelementptr inbounds %struct.point10, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + %6 = trunc i64 %0 to i32 + store i32 %6, i32* %5, align 4 + %7 = bitcast %struct.point10* %2 to i8* + %8 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 4, i1 false) + %9 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %9, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + ret i32 %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_point11(i64 %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_array20(i64 %0) #0 { + %2 = alloca %struct.array20, align 4 + %3 = alloca %struct.array20, align 4 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + %6 = bitcast [2 x i32]* %5 to i64* + store i64 %0, i64* %6, align 4 + %7 = bitcast %struct.array20* %2 to i8* + %8 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 8, i1 false) + %9 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %9, i32 0, i32 0 + %11 = bitcast [2 x i32]* %10 to i64* + %12 = load i64, i64* %11, align 4 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo_array21([2 x i64] %0) #0 { + %2 = alloca %struct.array21, align 4 + %3 = alloca %struct.array21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.array21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.array21* %2 to i8* + %9 = bitcast %struct.array21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.array21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo_point20(i64 %0) #0 { + %2 = alloca %struct.point20, align 4 + %3 = alloca %struct.point20, align 4 + %4 = getelementptr inbounds %struct.point20, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo_point21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 4 + %3 = alloca %struct.point21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point21* %2 to i8* + %9 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/demo.ll b/internal/cabi/_testdata/arch/arm64/demo.ll new file mode 100644 index 00000000..8220e27b --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/demo.ll @@ -0,0 +1,903 @@ +; ModuleID = '../../wrap/demo.c' +source_filename = "../../wrap/demo.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point = type { i32, i32 } +%struct.point1 = type { i32, i32, i32 } +%struct.point64 = type { i64, i64 } +%struct.struct32 = type { i32 } +%struct.point2 = type { i8, i32, i32 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i32 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i32 } +%struct.point7 = type { i8, i8, i8, i8, i8, i32, i8 } +%struct.data1 = type { i8, i64 } +%struct.data2 = type { i32, i64 } +%struct.data3 = type { i64, i8 } +%struct.fdata1 = type { float } +%struct.ddata1 = type { double } +%struct.ddata2 = type { double, double } +%struct.ddata3 = type { double, double, double } +%struct.fdata2i = type { float, i32 } +%struct.fdata2 = type { float, float } +%struct.fdata3 = type { float, float, float } +%struct.fdata4 = type { float, float, float, float } +%struct.fdata5 = type { float, float, float, float, float } +%struct.fdata2id = type { i8, i8, double } +%struct.fdata7if = type { [7 x i8], float } +%struct.fdata4if = type { float, i8, float, float } +%struct.array = type { [8 x i32] } + +@.str = private unnamed_addr constant [20 x i8] c"point64: %lld %lld\0A\00", align 1 +@.str.1 = private unnamed_addr constant [14 x i8] c"struct32: %d\0A\00", align 1 +@.str.2 = private unnamed_addr constant [14 x i8] c"point: %d %d\0A\00", align 1 +@.str.3 = private unnamed_addr constant [18 x i8] c"point1: %d %d %d\0A\00", align 1 +@.str.4 = private unnamed_addr constant [18 x i8] c"point2: %d %d %d\0A\00", align 1 +@.str.5 = private unnamed_addr constant [18 x i8] c"point3: %d %d %d\0A\00", align 1 +@.str.6 = private unnamed_addr constant [21 x i8] c"point4: %d %d %d %d\0A\00", align 1 +@.str.7 = private unnamed_addr constant [24 x i8] c"point5: %d %d %d %d %d\0A\00", align 1 +@.str.8 = private unnamed_addr constant [27 x i8] c"point6: %d %d %d %d %d %d\0A\00", align 1 +@.str.9 = private unnamed_addr constant [30 x i8] c"point7: %d %d %d %d %d %d %d\0A\00", align 1 +@.str.10 = private unnamed_addr constant [16 x i8] c"data1: %d %lld\0A\00", align 1 +@.str.11 = private unnamed_addr constant [16 x i8] c"data2: %d %lld\0A\00", align 1 +@.str.12 = private unnamed_addr constant [16 x i8] c"data3: %lld %d\0A\00", align 1 +@.str.13 = private unnamed_addr constant [9 x i8] c"ff1: %f\0A\00", align 1 +@.str.14 = private unnamed_addr constant [9 x i8] c"dd1: %f\0A\00", align 1 +@.str.15 = private unnamed_addr constant [12 x i8] c"dd2: %f %f\0A\00", align 1 +@.str.16 = private unnamed_addr constant [15 x i8] c"dd3: %f %f %f\0A\00", align 1 +@.str.17 = private unnamed_addr constant [13 x i8] c"ff2i: %f %d\0A\00", align 1 +@.str.18 = private unnamed_addr constant [12 x i8] c"ff2: %f %f\0A\00", align 1 +@.str.19 = private unnamed_addr constant [15 x i8] c"ff3: %f %f %f\0A\00", align 1 +@.str.20 = private unnamed_addr constant [18 x i8] c"ff4: %f %f %f %f\0A\00", align 1 +@.str.21 = private unnamed_addr constant [21 x i8] c"ff5: %f %f %f %f %f\0A\00", align 1 +@.str.22 = private unnamed_addr constant [15 x i8] c"ff6: %d %d %f\0A\00", align 1 +@.str.23 = private unnamed_addr constant [17 x i8] c"ff7if: %d %d %f\0A\00", align 1 +@.str.24 = private unnamed_addr constant [20 x i8] c"ff4if: %f %d %f %f\0A\00", align 1 +@.str.25 = private unnamed_addr constant [16 x i8] c"demo: %d %d %d\0A\00", align 1 +@__const.callback.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.26 = private unnamed_addr constant [27 x i8] c"callback1 array: %d %d %d\0A\00", align 1 +@__const.callback1.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback1.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.27 = private unnamed_addr constant [22 x i8] c"callback1 ret: %d,%d\0A\00", align 1 +@.str.28 = private unnamed_addr constant [28 x i8] c"mycallback array: %d %d %d\0A\00", align 1 +@.str.29 = private unnamed_addr constant [22 x i8] c"mycallback pt: %d %d\0A\00", align 1 +@.str.30 = private unnamed_addr constant [26 x i8] c"mycallback pt1: %d %d %d\0A\00", align 1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + %4 = add nsw i32 %3, 100 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + %4 = add nsw i64 %3, 100 + ret i64 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @pt64([2 x i64] %0) #0 { + %2 = alloca %struct.point64, align 8 + %3 = alloca %struct.point64, align 8 + %4 = bitcast %struct.point64* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.point64, %struct.point64* %3, i32 0, i32 0 + %6 = load i64, i64* %5, align 8 + %7 = getelementptr inbounds %struct.point64, %struct.point64* %3, i32 0, i32 1 + %8 = load i64, i64* %7, align 8 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i64 noundef %6, i64 noundef %8) + %10 = bitcast %struct.point64* %2 to i8* + %11 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 8 %11, i64 16, i1 false) + %12 = bitcast %struct.point64* %2 to [2 x i64]* + %13 = load [2 x i64], [2 x i64]* %12, align 8 + ret [2 x i64] %13 +} + +declare i32 @printf(i8* noundef, ...) #1 + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo32s(i64 %0) #0 { + %2 = alloca %struct.struct32, align 4 + %3 = alloca %struct.struct32, align 4 + %4 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i32 + store i32 %5, i32* %4, align 4 + %6 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %7 = load i32, i32* %6, align 4 + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), i32 noundef %7) + %9 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + %12 = add nsw i32 %11, 100 + store i32 %12, i32* %9, align 4 + %13 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %14 = load i32, i32* %13, align 4 + ret i32 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @pt(i64 %0) #0 { + %2 = alloca %struct.point, align 4 + %3 = alloca %struct.point, align 4 + %4 = bitcast %struct.point* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 4 + %7 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 1 + %8 = load i32, i32* %7, align 4 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i64 0, i64 0), i32 noundef %6, i32 noundef %8) + %10 = bitcast %struct.point* %2 to i8* + %11 = bitcast %struct.point* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 8, i1 false) + %12 = bitcast %struct.point* %2 to i64* + %13 = load i64, i64* %12, align 4 + ret i64 %13 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @pt1([2 x i64] %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + %10 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 1 + %11 = load i32, i32* %10, align 4 + %12 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 2 + %13 = load i32, i32* %12, align 4 + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i32 noundef %9, i32 noundef %11, i32 noundef %13) + %15 = bitcast %struct.point1* %2 to i8* + %16 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %15, i8* align 4 %16, i64 12, i1 false) + %17 = bitcast [2 x i64]* %5 to i8* + %18 = bitcast %struct.point1* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %17, i8* align 4 %18, i64 12, i1 false) + %19 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %19 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @pt2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 4 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 1 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 2 + %14 = load i32, i32* %13, align 4 + %15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i64 0, i64 0), i32 noundef %10, i32 noundef %12, i32 noundef %14) + %16 = bitcast %struct.point2* %2 to i8* + %17 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %16, i8* align 4 %17, i64 12, i1 false) + %18 = bitcast [2 x i64]* %5 to i8* + %19 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %18, i8* align 4 %19, i64 12, i1 false) + %20 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %20 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i24 @pt3(i64 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i24, align 4 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 3, i1 false) + %8 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 noundef %10, i32 noundef %13, i32 noundef %16) + %18 = bitcast %struct.point3* %2 to i8* + %19 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %18, i8* align 1 %19, i64 3, i1 false) + %20 = bitcast i24* %5 to i8* + %21 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %20, i8* align 1 %21, i64 3, i1 false) + %22 = load i24, i24* %5, align 4 + ret i24 %22 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @pt4(i64 %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 3 + %15 = load i32, i32* %14, align 4 + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i64 0, i64 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %15) + %17 = bitcast %struct.point4* %2 to i8* + %18 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %17, i8* align 4 %18, i64 8, i1 false) + %19 = bitcast %struct.point4* %2 to i64* + %20 = load i64, i64* %19, align 4 + ret i64 %20 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i40 @pt5(i64 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i40, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 3 + %18 = load i8, i8* %17, align 1 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 4 + %21 = load i8, i8* %20, align 1 + %22 = zext i8 %21 to i32 + %23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0), i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %22) + %24 = bitcast %struct.point5* %2 to i8* + %25 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %24, i8* align 1 %25, i64 5, i1 false) + %26 = bitcast i40* %5 to i8* + %27 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 1 %27, i64 5, i1 false) + %28 = load i40, i40* %5, align 8 + ret i40 %28 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @pt6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 4 + %3 = alloca %struct.point6, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 4 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 2 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 3 + %18 = load i8, i8* %17, align 1 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 4 + %21 = load i8, i8* %20, align 4 + %22 = zext i8 %21 to i32 + %23 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 5 + %24 = load i32, i32* %23, align 4 + %25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i64 0, i64 0), i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %22, i32 noundef %24) + %26 = bitcast %struct.point6* %2 to i8* + %27 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %26, i8* align 4 %27, i64 12, i1 false) + %28 = bitcast [2 x i64]* %5 to i8* + %29 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %28, i8* align 4 %29, i64 12, i1 false) + %30 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %30 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @pt7([2 x i64] %0) #0 { + %2 = alloca %struct.point7, align 4 + %3 = alloca %struct.point7, align 4 + %4 = bitcast %struct.point7* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 3 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 4 + %18 = load i8, i8* %17, align 4 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 5 + %21 = load i32, i32* %20, align 4 + %22 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 6 + %23 = load i8, i8* %22, align 4 + %24 = zext i8 %23 to i32 + %25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i64 0, i64 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %21, i32 noundef %24) + %26 = bitcast %struct.point7* %2 to i8* + %27 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %26, i8* align 4 %27, i64 16, i1 false) + %28 = bitcast %struct.point7* %2 to [2 x i64]* + %29 = load [2 x i64], [2 x i64]* %28, align 4 + ret [2 x i64] %29 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @fn1([2 x i64] %0) #0 { + %2 = alloca %struct.data1, align 8 + %3 = alloca %struct.data1, align 8 + %4 = bitcast %struct.data1* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data1, %struct.data1* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 8 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.data1, %struct.data1* %3, i32 0, i32 1 + %9 = load i64, i64* %8, align 8 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i64 0, i64 0), i32 noundef %7, i64 noundef %9) + %11 = bitcast %struct.data1* %2 to i8* + %12 = bitcast %struct.data1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %11, i8* align 8 %12, i64 16, i1 false) + %13 = bitcast %struct.data1* %2 to [2 x i64]* + %14 = load [2 x i64], [2 x i64]* %13, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @fn2([2 x i64] %0) #0 { + %2 = alloca %struct.data2, align 8 + %3 = alloca %struct.data2, align 8 + %4 = bitcast %struct.data2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data2, %struct.data2* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 8 + %7 = getelementptr inbounds %struct.data2, %struct.data2* %3, i32 0, i32 1 + %8 = load i64, i64* %7, align 8 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), i32 noundef %6, i64 noundef %8) + %10 = bitcast %struct.data2* %2 to i8* + %11 = bitcast %struct.data2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 8 %11, i64 16, i1 false) + %12 = bitcast %struct.data2* %2 to [2 x i64]* + %13 = load [2 x i64], [2 x i64]* %12, align 8 + ret [2 x i64] %13 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @fn3([2 x i64] %0) #0 { + %2 = alloca %struct.data3, align 8 + %3 = alloca %struct.data3, align 8 + %4 = bitcast %struct.data3* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data3, %struct.data3* %3, i32 0, i32 0 + %6 = load i64, i64* %5, align 8 + %7 = getelementptr inbounds %struct.data3, %struct.data3* %3, i32 0, i32 1 + %8 = load i8, i8* %7, align 8 + %9 = zext i8 %8 to i32 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0), i64 noundef %6, i32 noundef %9) + %11 = bitcast %struct.data3* %2 to i8* + %12 = bitcast %struct.data3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %11, i8* align 8 %12, i64 16, i1 false) + %13 = bitcast %struct.data3* %2 to [2 x i64]* + %14 = load [2 x i64], [2 x i64]* %13, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.fdata1 @ff1([1 x float] %0) #0 { + %2 = alloca %struct.fdata1, align 4 + %3 = alloca %struct.fdata1, align 4 + %4 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + %5 = bitcast float* %4 to [1 x float]* + store [1 x float] %0, [1 x float]* %5, align 4 + %6 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + %7 = load float, float* %6, align 4 + %8 = fpext float %7 to double + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0), double noundef %8) + %10 = bitcast %struct.fdata1* %2 to i8* + %11 = bitcast %struct.fdata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 4, i1 false) + %12 = load %struct.fdata1, %struct.fdata1* %2, align 4 + ret %struct.fdata1 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.ddata1 @dd1([1 x double] %0) #0 { + %2 = alloca %struct.ddata1, align 8 + %3 = alloca %struct.ddata1, align 8 + %4 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + %5 = bitcast double* %4 to [1 x double]* + store [1 x double] %0, [1 x double]* %5, align 8 + %6 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + %7 = load double, double* %6, align 8 + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i64 0, i64 0), double noundef %7) + %9 = bitcast %struct.ddata1* %2 to i8* + %10 = bitcast %struct.ddata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %9, i8* align 8 %10, i64 8, i1 false) + %11 = load %struct.ddata1, %struct.ddata1* %2, align 8 + ret %struct.ddata1 %11 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.ddata2 @dd2([2 x double] %0) #0 { + %2 = alloca %struct.ddata2, align 8 + %3 = alloca %struct.ddata2, align 8 + %4 = bitcast %struct.ddata2* %3 to [2 x double]* + store [2 x double] %0, [2 x double]* %4, align 8 + %5 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %3, i32 0, i32 0 + %6 = load double, double* %5, align 8 + %7 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %3, i32 0, i32 1 + %8 = load double, double* %7, align 8 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0), double noundef %6, double noundef %8) + %10 = bitcast %struct.ddata2* %2 to i8* + %11 = bitcast %struct.ddata2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 8 %11, i64 16, i1 false) + %12 = load %struct.ddata2, %struct.ddata2* %2, align 8 + ret %struct.ddata2 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.ddata3 @dd3([3 x double] %0) #0 { + %2 = alloca %struct.ddata3, align 8 + %3 = alloca %struct.ddata3, align 8 + %4 = bitcast %struct.ddata3* %3 to [3 x double]* + store [3 x double] %0, [3 x double]* %4, align 8 + %5 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %3, i32 0, i32 0 + %6 = load double, double* %5, align 8 + %7 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %3, i32 0, i32 1 + %8 = load double, double* %7, align 8 + %9 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %3, i32 0, i32 2 + %10 = load double, double* %9, align 8 + %11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i64 0, i64 0), double noundef %6, double noundef %8, double noundef %10) + %12 = bitcast %struct.ddata3* %2 to i8* + %13 = bitcast %struct.ddata3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 8 %13, i64 24, i1 false) + %14 = load %struct.ddata3, %struct.ddata3* %2, align 8 + ret %struct.ddata3 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @ff2i(i64 %0) #0 { + %2 = alloca %struct.fdata2i, align 4 + %3 = alloca %struct.fdata2i, align 4 + %4 = bitcast %struct.fdata2i* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 1 + %9 = load i32, i32* %8, align 4 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0), double noundef %7, i32 noundef %9) + %11 = bitcast %struct.fdata2i* %2 to i8* + %12 = bitcast %struct.fdata2i* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 8, i1 false) + %13 = bitcast %struct.fdata2i* %2 to i64* + %14 = load i64, i64* %13, align 4 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.fdata2 @ff2([2 x float] %0) #0 { + %2 = alloca %struct.fdata2, align 4 + %3 = alloca %struct.fdata2, align 4 + %4 = bitcast %struct.fdata2* %3 to [2 x float]* + store [2 x float] %0, [2 x float]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0), double noundef %7, double noundef %10) + %12 = bitcast %struct.fdata2* %2 to i8* + %13 = bitcast %struct.fdata2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %12, i8* align 4 %13, i64 8, i1 false) + %14 = load %struct.fdata2, %struct.fdata2* %2, align 4 + ret %struct.fdata2 %14 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.fdata3 @ff3([3 x float] %0) #0 { + %2 = alloca %struct.fdata3, align 4 + %3 = alloca %struct.fdata3, align 4 + %4 = bitcast %struct.fdata3* %3 to [3 x float]* + store [3 x float] %0, [3 x float]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i64 0, i64 0), double noundef %7, double noundef %10, double noundef %13) + %15 = bitcast %struct.fdata3* %2 to i8* + %16 = bitcast %struct.fdata3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %15, i8* align 4 %16, i64 12, i1 false) + %17 = load %struct.fdata3, %struct.fdata3* %2, align 4 + ret %struct.fdata3 %17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.fdata4 @ff4([4 x float] %0) #0 { + %2 = alloca %struct.fdata4, align 4 + %3 = alloca %struct.fdata4, align 4 + %4 = bitcast %struct.fdata4* %3 to [4 x float]* + store [4 x float] %0, [4 x float]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), double noundef %7, double noundef %10, double noundef %13, double noundef %16) + %18 = bitcast %struct.fdata4* %2 to i8* + %19 = bitcast %struct.fdata4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 16, i1 false) + %20 = load %struct.fdata4, %struct.fdata4* %2, align 4 + ret %struct.fdata4 %20 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff5(%struct.fdata5* noalias sret(%struct.fdata5) align 4 %0, %struct.fdata5* noundef %1) #0 { + %3 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 0 + %4 = load float, float* %3, align 4 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 1 + %7 = load float, float* %6, align 4 + %8 = fpext float %7 to double + %9 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 2 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 3 + %13 = load float, float* %12, align 4 + %14 = fpext float %13 to double + %15 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 4 + %16 = load float, float* %15, align 4 + %17 = fpext float %16 to double + %18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0), double noundef %5, double noundef %8, double noundef %11, double noundef %14, double noundef %17) + %19 = bitcast %struct.fdata5* %0 to i8* + %20 = bitcast %struct.fdata5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %19, i8* align 4 %20, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @ff2id([2 x i64] %0) #0 { + %2 = alloca %struct.fdata2id, align 8 + %3 = alloca %struct.fdata2id, align 8 + %4 = bitcast %struct.fdata2id* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 8 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 2 + %12 = load double, double* %11, align 8 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0), i32 noundef %7, i32 noundef %10, double noundef %12) + %14 = bitcast %struct.fdata2id* %2 to i8* + %15 = bitcast %struct.fdata2id* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 8 %15, i64 16, i1 false) + %16 = bitcast %struct.fdata2id* %2 to [2 x i64]* + %17 = load [2 x i64], [2 x i64]* %16, align 8 + ret [2 x i64] %17 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @ff7if([2 x i64] %0) #0 { + %2 = alloca %struct.fdata7if, align 4 + %3 = alloca %struct.fdata7if, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.fdata7if* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 0 + %9 = getelementptr inbounds [7 x i8], [7 x i8]* %8, i64 0, i64 0 + %10 = load i8, i8* %9, align 4 + %11 = zext i8 %10 to i32 + %12 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 0 + %13 = getelementptr inbounds [7 x i8], [7 x i8]* %12, i64 0, i64 1 + %14 = load i8, i8* %13, align 1 + %15 = zext i8 %14 to i32 + %16 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 1 + %17 = load float, float* %16, align 4 + %18 = fpext float %17 to double + %19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i64 0, i64 0), i32 noundef %11, i32 noundef %15, double noundef %18) + %20 = bitcast %struct.fdata7if* %2 to i8* + %21 = bitcast %struct.fdata7if* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %20, i8* align 4 %21, i64 12, i1 false) + %22 = bitcast [2 x i64]* %5 to i8* + %23 = bitcast %struct.fdata7if* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 4 %23, i64 12, i1 false) + %24 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %24 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @ff4if([2 x i64] %0) #0 { + %2 = alloca %struct.fdata4if, align 4 + %3 = alloca %struct.fdata4if, align 4 + %4 = bitcast %struct.fdata4if* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 4 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i64 0, i64 0), double noundef %7, i32 noundef %10, double noundef %13, double noundef %16) + %18 = bitcast %struct.fdata4if* %2 to i8* + %19 = bitcast %struct.fdata4if* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 16, i1 false) + %20 = bitcast %struct.fdata4if* %2 to [2 x i64]* + %21 = load [2 x i64], [2 x i64]* %20, align 4 + ret [2 x i64] %21 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo(%struct.array* noalias sret(%struct.array) align 4 %0, %struct.array* noundef %1) #0 { + %3 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %4 = getelementptr inbounds [8 x i32], [8 x i32]* %3, i64 0, i64 0 + %5 = load i32, i32* %4, align 4 + %6 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %7 = getelementptr inbounds [8 x i32], [8 x i32]* %6, i64 0, i64 1 + %8 = load i32, i32* %7, align 4 + %9 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %10 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 2 + %11 = load i32, i32* %10, align 4 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.25, i64 0, i64 0), i32 noundef %5, i32 noundef %8, i32 noundef %11) + %13 = bitcast %struct.array* %0 to i8* + %14 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %13, i8* align 4 %14, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array* noalias sret(%struct.array) align 4 %0, i32 noundef %1) #0 { + %3 = alloca i32, align 4 + %4 = alloca i32, align 4 + store i32 %1, i32* %3, align 4 + store i32 0, i32* %4, align 4 + br label %5 + +5: ; preds = %16, %2 + %6 = load i32, i32* %4, align 4 + %7 = icmp slt i32 %6, 8 + br i1 %7, label %8, label %19 + +8: ; preds = %5 + %9 = load i32, i32* %4, align 4 + %10 = load i32, i32* %3, align 4 + %11 = add nsw i32 %9, %10 + %12 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %13 = load i32, i32* %4, align 4 + %14 = sext i32 %13 to i64 + %15 = getelementptr inbounds [8 x i32], [8 x i32]* %12, i64 0, i64 %14 + store i32 %11, i32* %15, align 4 + br label %16 + +16: ; preds = %8 + %17 = load i32, i32* %4, align 4 + %18 = add nsw i32 %17, 1 + store i32 %18, i32* %4, align 4 + br label %5, !llvm.loop !10 + +19: ; preds = %5 + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @callback(void (%struct.array*, %struct.array*, i64, [2 x i64])* noundef %0, %struct.array* noundef %1) #0 { + %3 = alloca void (%struct.array*, %struct.array*, i64, [2 x i64])*, align 8 + %4 = alloca %struct.array, align 4 + %5 = alloca %struct.array, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca %struct.point1, align 4 + %8 = alloca %struct.array, align 4 + %9 = alloca %struct.array, align 4 + %10 = alloca [2 x i64], align 8 + %11 = alloca %struct.array, align 4 + %12 = alloca %struct.array, align 4 + store void (%struct.array*, %struct.array*, i64, [2 x i64])* %0, void (%struct.array*, %struct.array*, i64, [2 x i64])** %3, align 8 + %13 = bitcast %struct.array* %5 to i8* + %14 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %13, i8* align 4 %14, i64 32, i1 false) + call void @demo(%struct.array* sret(%struct.array) align 4 %4, %struct.array* noundef %5) + %15 = bitcast %struct.point* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %15, i8* align 4 bitcast (%struct.point* @__const.callback.pt to i8*), i64 8, i1 false) + %16 = bitcast %struct.point1* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %16, i8* align 4 bitcast (%struct.point1* @__const.callback.pt1 to i8*), i64 12, i1 false) + %17 = load void (%struct.array*, %struct.array*, i64, [2 x i64])*, void (%struct.array*, %struct.array*, i64, [2 x i64])** %3, align 8 + %18 = bitcast %struct.array* %9 to i8* + %19 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 32, i1 false) + %20 = bitcast %struct.point* %6 to i64* + %21 = load i64, i64* %20, align 4 + %22 = bitcast [2 x i64]* %10 to i8* + %23 = bitcast %struct.point1* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 4 %23, i64 12, i1 false) + %24 = load [2 x i64], [2 x i64]* %10, align 8 + call void %17(%struct.array* sret(%struct.array) align 4 %8, %struct.array* noundef %9, i64 %21, [2 x i64] %24) + %25 = bitcast %struct.array* %12 to i8* + %26 = bitcast %struct.array* %8 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %25, i8* align 4 %26, i64 32, i1 false) + call void @demo(%struct.array* sret(%struct.array) align 4 %11, %struct.array* noundef %12) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @callback1(i64 (%struct.array*, i64, [2 x i64])* noundef %0, %struct.array* noundef %1) #0 { + %3 = alloca i64 (%struct.array*, i64, [2 x i64])*, align 8 + %4 = alloca %struct.point, align 4 + %5 = alloca %struct.point1, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca %struct.array, align 4 + %8 = alloca [2 x i64], align 8 + store i64 (%struct.array*, i64, [2 x i64])* %0, i64 (%struct.array*, i64, [2 x i64])** %3, align 8 + %9 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %10 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 0 + %11 = load i32, i32* %10, align 4 + %12 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %13 = getelementptr inbounds [8 x i32], [8 x i32]* %12, i64 0, i64 1 + %14 = load i32, i32* %13, align 4 + %15 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %16 = getelementptr inbounds [8 x i32], [8 x i32]* %15, i64 0, i64 7 + %17 = load i32, i32* %16, align 4 + %18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i64 0, i64 0), i32 noundef %11, i32 noundef %14, i32 noundef %17) + %19 = bitcast %struct.point* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %19, i8* align 4 bitcast (%struct.point* @__const.callback1.pt to i8*), i64 8, i1 false) + %20 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %20, i8* align 4 bitcast (%struct.point1* @__const.callback1.pt1 to i8*), i64 12, i1 false) + %21 = load i64 (%struct.array*, i64, [2 x i64])*, i64 (%struct.array*, i64, [2 x i64])** %3, align 8 + %22 = bitcast %struct.array* %7 to i8* + %23 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %22, i8* align 4 %23, i64 32, i1 false) + %24 = bitcast %struct.point* %4 to i64* + %25 = load i64, i64* %24, align 4 + %26 = bitcast [2 x i64]* %8 to i8* + %27 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 4 %27, i64 12, i1 false) + %28 = load [2 x i64], [2 x i64]* %8, align 8 + %29 = call i64 %21(%struct.array* noundef %7, i64 %25, [2 x i64] %28) + %30 = bitcast %struct.point* %6 to i64* + store i64 %29, i64* %30, align 4 + %31 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %32 = load i32, i32* %31, align 4 + %33 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %34 = load i32, i32* %33, align 4 + %35 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i64 0, i64 0), i32 noundef %32, i32 noundef %34) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @mycallback(%struct.array* noundef %0, i64 %1, [2 x i64] %2) #0 { + %4 = alloca %struct.point, align 4 + %5 = alloca %struct.point, align 4 + %6 = alloca %struct.point1, align 4 + %7 = alloca [2 x i64], align 8 + %8 = bitcast %struct.point* %5 to i64* + store i64 %1, i64* %8, align 4 + store [2 x i64] %2, [2 x i64]* %7, align 8 + %9 = bitcast %struct.point1* %6 to i8* + %10 = bitcast [2 x i64]* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 8 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i64 0, i64 0 + %13 = load i32, i32* %12, align 4 + %14 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %15 = getelementptr inbounds [8 x i32], [8 x i32]* %14, i64 0, i64 1 + %16 = load i32, i32* %15, align 4 + %17 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %18 = getelementptr inbounds [8 x i32], [8 x i32]* %17, i64 0, i64 7 + %19 = load i32, i32* %18, align 4 + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i64 0, i64 0), i32 noundef %13, i32 noundef %16, i32 noundef %19) + %21 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + %22 = load i32, i32* %21, align 4 + %23 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + %24 = load i32, i32* %23, align 4 + %25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i64 0, i64 0), i32 noundef %22, i32 noundef %24) + %26 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 0 + %27 = load i32, i32* %26, align 4 + %28 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 1 + %29 = load i32, i32* %28, align 4 + %30 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 2 + %31 = load i32, i32* %30, align 4 + %32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.30, i64 0, i64 0), i32 noundef %27, i32 noundef %29, i32 noundef %31) + %33 = getelementptr inbounds %struct.point, %struct.point* %4, i32 0, i32 0 + %34 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + %35 = load i32, i32* %34, align 4 + %36 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 0 + %37 = load i32, i32* %36, align 4 + %38 = add nsw i32 %35, %37 + store i32 %38, i32* %33, align 4 + %39 = getelementptr inbounds %struct.point, %struct.point* %4, i32 0, i32 1 + %40 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + %41 = load i32, i32* %40, align 4 + %42 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 1 + %43 = load i32, i32* %42, align 4 + %44 = add nsw i32 %41, %43 + store i32 %44, i32* %39, align 4 + %45 = bitcast %struct.point* %4 to i64* + %46 = load i64, i64* %45, align 4 + ret i64 %46 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #2 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} +!10 = distinct !{!10, !11} +!11 = !{!"llvm.loop.mustprogress"} diff --git a/internal/cabi/_testdata/arch/arm64/empty.ll b/internal/cabi/_testdata/arch/arm64/empty.ll new file mode 100644 index 00000000..35418314 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/empty.ll @@ -0,0 +1,70 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_float32.ll b/internal/cabi/_testdata/arch/arm64/struct_float32.ll new file mode 100644 index 00000000..66c3f565 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_float32.ll @@ -0,0 +1,226 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point1 @demo1([1 x float] %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast float* %4 to [1 x float]* + store [1 x float] %0, [1 x float]* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = load %struct.point1, %struct.point1* %2, align 4 + ret %struct.point1 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point2 @demo2([2 x float] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x float]* + store [2 x float] %0, [2 x float]* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = load %struct.point2, %struct.point2* %2, align 4 + ret %struct.point2 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point3 @demo3([3 x float] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = bitcast %struct.point3* %3 to [3 x float]* + store [3 x float] %0, [3 x float]* %4, align 4 + %5 = bitcast %struct.point3* %2 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 12, i1 false) + %7 = load %struct.point3, %struct.point3* %2, align 4 + ret %struct.point3 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point4 @demo4([4 x float] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [4 x float]* + store [4 x float] %0, [4 x float]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = load %struct.point4, %struct.point4* %2, align 4 + ret %struct.point4 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_float64.ll b/internal/cabi/_testdata/arch/arm64/struct_float64.ll new file mode 100644 index 00000000..bf49cf8f --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_float64.ll @@ -0,0 +1,226 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point1 @demo1([1 x double] %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast double* %4 to [1 x double]* + store [1 x double] %0, [1 x double]* %5, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = load %struct.point1, %struct.point1* %2, align 8 + ret %struct.point1 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point2 @demo2([2 x double] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x double]* + store [2 x double] %0, [2 x double]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = load %struct.point2, %struct.point2* %2, align 8 + ret %struct.point2 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point3 @demo3([3 x double] %0) #0 { + %2 = alloca %struct.point3, align 8 + %3 = alloca %struct.point3, align 8 + %4 = bitcast %struct.point3* %3 to [3 x double]* + store [3 x double] %0, [3 x double]* %4, align 8 + %5 = bitcast %struct.point3* %2 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + %7 = load %struct.point3, %struct.point3* %2, align 8 + ret %struct.point3 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local %struct.point4 @demo4([4 x double] %0) #0 { + %2 = alloca %struct.point4, align 8 + %3 = alloca %struct.point4, align 8 + %4 = bitcast %struct.point4* %3 to [4 x double]* + store [4 x double] %0, [4 x double]* %4, align 8 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + %7 = load %struct.point4, %struct.point4* %2, align 8 + ret %struct.point4 %7 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_int16.ll b/internal/cabi/_testdata/arch/arm64/struct_int16.ll new file mode 100644 index 00000000..f8a8da24 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_int16.ll @@ -0,0 +1,281 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i16 + store i16 %5, i16* %4, align 2 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 2, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i16, i16* %8, align 2 + ret i16 %9 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point2* %3 to i8* + %6 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 8 %6, i64 4, i1 false) + %7 = bitcast %struct.point2* %2 to i8* + %8 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 2 %8, i64 4, i1 false) + %9 = bitcast %struct.point2* %2 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 2 + %3 = alloca %struct.point3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 2 + %3 = alloca %struct.point4, align 2 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.point5, align 2 + %3 = alloca %struct.point5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 2 + %3 = alloca %struct.point6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.point8, align 2 + %3 = alloca %struct.point8, align 2 + %4 = bitcast %struct.point8* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 2 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 16, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 2 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %3, i8* align 2 %4, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_int32.ll b/internal/cabi/_testdata/arch/arm64/struct_int32.ll new file mode 100644 index 00000000..97020292 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_int32.ll @@ -0,0 +1,236 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i32 + store i32 %5, i32* %4, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + ret i32 %9 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_int64.ll b/internal/cabi/_testdata/arch/arm64/struct_int64.ll new file mode 100644 index 00000000..5efcf2a5 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_int64.ll @@ -0,0 +1,217 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_int8.ll b/internal/cabi/_testdata/arch/arm64/struct_int8.ll new file mode 100644 index 00000000..78546882 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_int8.ll @@ -0,0 +1,374 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i8 + store i8 %5, i8* %4, align 1 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 1, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + ret i8 %9 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i16 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point2* %3 to i8* + %6 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 8 %6, i64 2, i1 false) + %7 = bitcast %struct.point2* %2 to i8* + %8 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 1 %8, i64 2, i1 false) + %9 = bitcast %struct.point2* %2 to i16* + %10 = load i16, i16* %9, align 1 + ret i16 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i24 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i24, align 4 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 3, i1 false) + %10 = bitcast i24* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 1 %11, i64 3, i1 false) + %12 = load i24, i24* %5, align 4 + ret i24 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point4* %3 to i8* + %6 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 8 %6, i64 4, i1 false) + %7 = bitcast %struct.point4* %2 to i8* + %8 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 1 %8, i64 4, i1 false) + %9 = bitcast %struct.point4* %2 to i32* + %10 = load i32, i32* %9, align 1 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i40 @demo5(i64 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i40, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 5, i1 false) + %10 = bitcast i40* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 5, i1 false) + %12 = load i40, i40* %5, align 8 + ret i40 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo6(i64 %0) #0 { + %2 = alloca %struct.point6, align 1 + %3 = alloca %struct.point6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i56 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 1 + %3 = alloca %struct.point7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i56, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 7, i1 false) + %10 = bitcast i56* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 7, i1 false) + %12 = load i56, i56* %5, align 8 + ret i56 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 1 + %3 = alloca %struct.point8, align 1 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 1 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 1 + %3 = alloca %struct.point9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point9* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 9, i1 false) + %8 = bitcast %struct.point9* %2 to i8* + %9 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 9, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point9* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 9, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.point10, align 1 + %3 = alloca %struct.point10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point10* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point10* %2 to i8* + %9 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point10* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.point11, align 1 + %3 = alloca %struct.point11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point11* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 11, i1 false) + %8 = bitcast %struct.point11* %2 to i8* + %9 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 11, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point11* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 11, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 1 + %3 = alloca %struct.point12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point12* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point12* %2 to i8* + %9 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point12* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.point13, align 1 + %3 = alloca %struct.point13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point13* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 13, i1 false) + %8 = bitcast %struct.point13* %2 to i8* + %9 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 13, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point13* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 13, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.point14, align 1 + %3 = alloca %struct.point14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point14* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point14* %2 to i8* + %9 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point14* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 1 + %3 = alloca %struct.point15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point15* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 15, i1 false) + %8 = bitcast %struct.point15* %2 to i8* + %9 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 15, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point15* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 15, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.point16, align 1 + %3 = alloca %struct.point16, align 1 + %4 = bitcast %struct.point16* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 1 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 16, i1 false) + %7 = bitcast %struct.point16* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 1 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_mixed.ll b/internal/cabi/_testdata/arch/arm64/struct_mixed.ll new file mode 100644 index 00000000..12b482b5 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_mixed.ll @@ -0,0 +1,15082 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %3 to i8* + %6 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 8 %6, i64 4, i1 false) + %7 = bitcast %struct.point1* %2 to i8* + %8 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 2 %8, i64 4, i1 false) + %9 = bitcast %struct.point1* %2 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 8 + %3 = alloca %struct.point3, align 8 + %4 = bitcast %struct.point3* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point3* %2 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point3* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.point5, align 8 + %3 = alloca %struct.point5, align 8 + %4 = bitcast %struct.point5* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point5* %2 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point5* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 8 + %3 = alloca %struct.point6, align 8 + %4 = bitcast %struct.point6* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point6* %2 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point6* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point7* %3 to i8* + %6 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 8 %6, i64 4, i1 false) + %7 = bitcast %struct.point7* %2 to i8* + %8 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 2 %8, i64 4, i1 false) + %9 = bitcast %struct.point7* %2 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 8 + %3 = alloca %struct.point9, align 8 + %4 = bitcast %struct.point9* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point9* %2 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point9* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo10(i64 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = bitcast %struct.point10* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point10* %2 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point10* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.point11, align 8 + %3 = alloca %struct.point11, align 8 + %4 = bitcast %struct.point11* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point11* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 8 + %3 = alloca %struct.point12, align 8 + %4 = bitcast %struct.point12* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point12* %2 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point12* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo13(i64 %0) #0 { + %2 = alloca %struct.point13, align 4 + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point13* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo14(i64 %0) #0 { + %2 = alloca %struct.point14, align 4 + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point14* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 8 + %3 = alloca %struct.point15, align 8 + %4 = bitcast %struct.point15* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point15* %2 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point15* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo16(i64 %0) #0 { + %2 = alloca %struct.point16, align 4 + %3 = alloca %struct.point16, align 4 + %4 = bitcast %struct.point16* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point16* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo17([2 x i64] %0) #0 { + %2 = alloca %struct.point17, align 8 + %3 = alloca %struct.point17, align 8 + %4 = bitcast %struct.point17* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point17* %2 to i8* + %6 = bitcast %struct.point17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point17* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo18([2 x i64] %0) #0 { + %2 = alloca %struct.point18, align 8 + %3 = alloca %struct.point18, align 8 + %4 = bitcast %struct.point18* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point18* %2 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point18* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo19([2 x i64] %0) #0 { + %2 = alloca %struct.point19, align 8 + %3 = alloca %struct.point19, align 8 + %4 = bitcast %struct.point19* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point19* %2 to i8* + %6 = bitcast %struct.point19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point19* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo20([2 x i64] %0) #0 { + %2 = alloca %struct.point20, align 8 + %3 = alloca %struct.point20, align 8 + %4 = bitcast %struct.point20* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point20* %2 to i8* + %6 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point20* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 8 + %3 = alloca %struct.point21, align 8 + %4 = bitcast %struct.point21* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point21* %2 to i8* + %6 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point21* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo22([2 x i64] %0) #0 { + %2 = alloca %struct.point22, align 8 + %3 = alloca %struct.point22, align 8 + %4 = bitcast %struct.point22* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point22* %2 to i8* + %6 = bitcast %struct.point22* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point22* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo23([2 x i64] %0) #0 { + %2 = alloca %struct.point23, align 8 + %3 = alloca %struct.point23, align 8 + %4 = bitcast %struct.point23* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point23* %2 to i8* + %6 = bitcast %struct.point23* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point23* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo24([2 x i64] %0) #0 { + %2 = alloca %struct.point24, align 8 + %3 = alloca %struct.point24, align 8 + %4 = bitcast %struct.point24* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point24* %2 to i8* + %6 = bitcast %struct.point24* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point24* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo25(i64 %0) #0 { + %2 = alloca %struct.point25, align 4 + %3 = alloca %struct.point25, align 4 + %4 = bitcast %struct.point25* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point25* %2 to i8* + %6 = bitcast %struct.point25* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point25* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo26(i64 %0) #0 { + %2 = alloca %struct.point26, align 4 + %3 = alloca %struct.point26, align 4 + %4 = bitcast %struct.point26* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point26* %2 to i8* + %6 = bitcast %struct.point26* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point26* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo27(i64 %0) #0 { + %2 = alloca %struct.point27, align 4 + %3 = alloca %struct.point27, align 4 + %4 = bitcast %struct.point27* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point27* %2 to i8* + %6 = bitcast %struct.point27* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point27* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo28([2 x i64] %0) #0 { + %2 = alloca %struct.point28, align 8 + %3 = alloca %struct.point28, align 8 + %4 = bitcast %struct.point28* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point28* %2 to i8* + %6 = bitcast %struct.point28* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point28* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo29([2 x i64] %0) #0 { + %2 = alloca %struct.point29, align 8 + %3 = alloca %struct.point29, align 8 + %4 = bitcast %struct.point29* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point29* %2 to i8* + %6 = bitcast %struct.point29* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point29* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo30([2 x i64] %0) #0 { + %2 = alloca %struct.point30, align 8 + %3 = alloca %struct.point30, align 8 + %4 = bitcast %struct.point30* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point30* %2 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point30* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo31([2 x i64] %0) #0 { + %2 = alloca %struct.point31, align 8 + %3 = alloca %struct.point31, align 8 + %4 = bitcast %struct.point31* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point31* %2 to i8* + %6 = bitcast %struct.point31* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point31* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo32([2 x i64] %0) #0 { + %2 = alloca %struct.point32, align 8 + %3 = alloca %struct.point32, align 8 + %4 = bitcast %struct.point32* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point32* %2 to i8* + %6 = bitcast %struct.point32* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point32* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo33([2 x i64] %0) #0 { + %2 = alloca %struct.point33, align 8 + %3 = alloca %struct.point33, align 8 + %4 = bitcast %struct.point33* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point33* %2 to i8* + %6 = bitcast %struct.point33* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point33* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo34([2 x i64] %0) #0 { + %2 = alloca %struct.point34, align 8 + %3 = alloca %struct.point34, align 8 + %4 = bitcast %struct.point34* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point34* %2 to i8* + %6 = bitcast %struct.point34* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point34* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo35([2 x i64] %0) #0 { + %2 = alloca %struct.point35, align 8 + %3 = alloca %struct.point35, align 8 + %4 = bitcast %struct.point35* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point35* %2 to i8* + %6 = bitcast %struct.point35* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point35* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo36([2 x i64] %0) #0 { + %2 = alloca %struct.point36, align 8 + %3 = alloca %struct.point36, align 8 + %4 = bitcast %struct.point36* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point36* %2 to i8* + %6 = bitcast %struct.point36* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point36* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo37([2 x i64] %0) #0 { + %2 = alloca %struct.point37, align 8 + %3 = alloca %struct.point37, align 8 + %4 = bitcast %struct.point37* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point37* %2 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point37* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo38([2 x i64] %0) #0 { + %2 = alloca %struct.point38, align 8 + %3 = alloca %struct.point38, align 8 + %4 = bitcast %struct.point38* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point38* %2 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point38* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo39([2 x i64] %0) #0 { + %2 = alloca %struct.point39, align 8 + %3 = alloca %struct.point39, align 8 + %4 = bitcast %struct.point39* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point39* %2 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point39* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo40([2 x i64] %0) #0 { + %2 = alloca %struct.point40, align 8 + %3 = alloca %struct.point40, align 8 + %4 = bitcast %struct.point40* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point40* %2 to i8* + %6 = bitcast %struct.point40* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point40* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo41([2 x i64] %0) #0 { + %2 = alloca %struct.point41, align 8 + %3 = alloca %struct.point41, align 8 + %4 = bitcast %struct.point41* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point41* %2 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point41* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo42([2 x i64] %0) #0 { + %2 = alloca %struct.point42, align 8 + %3 = alloca %struct.point42, align 8 + %4 = bitcast %struct.point42* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point42* %2 to i8* + %6 = bitcast %struct.point42* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point42* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo43(i64 %0) #0 { + %2 = alloca %struct.point43, align 2 + %3 = alloca %struct.point43, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo44(i64 %0) #0 { + %2 = alloca %struct.point44, align 2 + %3 = alloca %struct.point44, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo45(i64 %0) #0 { + %2 = alloca %struct.point45, align 2 + %3 = alloca %struct.point45, align 2 + %4 = bitcast %struct.point45* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point45* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo46(i64 %0) #0 { + %2 = alloca %struct.point46, align 2 + %3 = alloca %struct.point46, align 2 + %4 = bitcast %struct.point46* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point46* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo47([2 x i64] %0) #0 { + %2 = alloca %struct.point47, align 4 + %3 = alloca %struct.point47, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point47* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point47* %2 to i8* + %9 = bitcast %struct.point47* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point47* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo48([2 x i64] %0) #0 { + %2 = alloca %struct.point48, align 4 + %3 = alloca %struct.point48, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point48* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point48* %2 to i8* + %9 = bitcast %struct.point48* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point48* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo49(i64 %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point49* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo50([2 x i64] %0) #0 { + %2 = alloca %struct.point50, align 2 + %3 = alloca %struct.point50, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point50* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point50* %2 to i8* + %9 = bitcast %struct.point50* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point50* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo51([2 x i64] %0) #0 { + %2 = alloca %struct.point51, align 2 + %3 = alloca %struct.point51, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point51* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point51* %2 to i8* + %9 = bitcast %struct.point51* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point51* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo52([2 x i64] %0) #0 { + %2 = alloca %struct.point52, align 4 + %3 = alloca %struct.point52, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point52* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point52* %2 to i8* + %9 = bitcast %struct.point52* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point52* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo53([2 x i64] %0) #0 { + %2 = alloca %struct.point53, align 4 + %3 = alloca %struct.point53, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point53* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point53* %2 to i8* + %9 = bitcast %struct.point53* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point53* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo54([2 x i64] %0) #0 { + %2 = alloca %struct.point54, align 4 + %3 = alloca %struct.point54, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point54* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point54* %2 to i8* + %9 = bitcast %struct.point54* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point54* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo55([2 x i64] %0) #0 { + %2 = alloca %struct.point55, align 4 + %3 = alloca %struct.point55, align 4 + %4 = bitcast %struct.point55* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point55* %2 to i8* + %6 = bitcast %struct.point55* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point55* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo56([2 x i64] %0) #0 { + %2 = alloca %struct.point56, align 4 + %3 = alloca %struct.point56, align 4 + %4 = bitcast %struct.point56* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point56* %2 to i8* + %6 = bitcast %struct.point56* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point56* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo57([2 x i64] %0) #0 { + %2 = alloca %struct.point57, align 4 + %3 = alloca %struct.point57, align 4 + %4 = bitcast %struct.point57* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point57* %2 to i8* + %6 = bitcast %struct.point57* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point57* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo58([2 x i64] %0) #0 { + %2 = alloca %struct.point58, align 4 + %3 = alloca %struct.point58, align 4 + %4 = bitcast %struct.point58* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point58* %2 to i8* + %6 = bitcast %struct.point58* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point58* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo59([2 x i64] %0) #0 { + %2 = alloca %struct.point59, align 4 + %3 = alloca %struct.point59, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point59* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point59* %2 to i8* + %9 = bitcast %struct.point59* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point59* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo60([2 x i64] %0) #0 { + %2 = alloca %struct.point60, align 4 + %3 = alloca %struct.point60, align 4 + %4 = bitcast %struct.point60* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point60* %2 to i8* + %6 = bitcast %struct.point60* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point60* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo61([2 x i64] %0) #0 { + %2 = alloca %struct.point61, align 4 + %3 = alloca %struct.point61, align 4 + %4 = bitcast %struct.point61* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point61* %2 to i8* + %6 = bitcast %struct.point61* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point61* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo62([2 x i64] %0) #0 { + %2 = alloca %struct.point62, align 4 + %3 = alloca %struct.point62, align 4 + %4 = bitcast %struct.point62* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point62* %2 to i8* + %6 = bitcast %struct.point62* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point62* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo63([2 x i64] %0) #0 { + %2 = alloca %struct.point63, align 4 + %3 = alloca %struct.point63, align 4 + %4 = bitcast %struct.point63* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point63* %2 to i8* + %6 = bitcast %struct.point63* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point63* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo64(i64 %0) #0 { + %2 = alloca %struct.point64, align 2 + %3 = alloca %struct.point64, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo65(i64 %0) #0 { + %2 = alloca %struct.point65, align 2 + %3 = alloca %struct.point65, align 2 + %4 = bitcast %struct.point65* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point65* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo66(i64 %0) #0 { + %2 = alloca %struct.point66, align 2 + %3 = alloca %struct.point66, align 2 + %4 = bitcast %struct.point66* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point66* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo67([2 x i64] %0) #0 { + %2 = alloca %struct.point67, align 2 + %3 = alloca %struct.point67, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point67* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point67* %2 to i8* + %9 = bitcast %struct.point67* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point67* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo68([2 x i64] %0) #0 { + %2 = alloca %struct.point68, align 4 + %3 = alloca %struct.point68, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point68* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point68* %2 to i8* + %9 = bitcast %struct.point68* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point68* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo69([2 x i64] %0) #0 { + %2 = alloca %struct.point69, align 4 + %3 = alloca %struct.point69, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point69* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point69* %2 to i8* + %9 = bitcast %struct.point69* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point69* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo70(i64 %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point70* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo71([2 x i64] %0) #0 { + %2 = alloca %struct.point71, align 2 + %3 = alloca %struct.point71, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point71* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point71* %2 to i8* + %9 = bitcast %struct.point71* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point71* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo72([2 x i64] %0) #0 { + %2 = alloca %struct.point72, align 2 + %3 = alloca %struct.point72, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point72* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point72* %2 to i8* + %9 = bitcast %struct.point72* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point72* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo73([2 x i64] %0) #0 { + %2 = alloca %struct.point73, align 4 + %3 = alloca %struct.point73, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point73* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point73* %2 to i8* + %9 = bitcast %struct.point73* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point73* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo74([2 x i64] %0) #0 { + %2 = alloca %struct.point74, align 4 + %3 = alloca %struct.point74, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point74* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point74* %2 to i8* + %9 = bitcast %struct.point74* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point74* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo75([2 x i64] %0) #0 { + %2 = alloca %struct.point75, align 4 + %3 = alloca %struct.point75, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point75* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point75* %2 to i8* + %9 = bitcast %struct.point75* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point75* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo76([2 x i64] %0) #0 { + %2 = alloca %struct.point76, align 4 + %3 = alloca %struct.point76, align 4 + %4 = bitcast %struct.point76* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point76* %2 to i8* + %6 = bitcast %struct.point76* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point76* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo77([2 x i64] %0) #0 { + %2 = alloca %struct.point77, align 4 + %3 = alloca %struct.point77, align 4 + %4 = bitcast %struct.point77* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point77* %2 to i8* + %6 = bitcast %struct.point77* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point77* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo78([2 x i64] %0) #0 { + %2 = alloca %struct.point78, align 4 + %3 = alloca %struct.point78, align 4 + %4 = bitcast %struct.point78* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point78* %2 to i8* + %6 = bitcast %struct.point78* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point78* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo79([2 x i64] %0) #0 { + %2 = alloca %struct.point79, align 4 + %3 = alloca %struct.point79, align 4 + %4 = bitcast %struct.point79* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point79* %2 to i8* + %6 = bitcast %struct.point79* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point79* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo80([2 x i64] %0) #0 { + %2 = alloca %struct.point80, align 4 + %3 = alloca %struct.point80, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point80* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point80* %2 to i8* + %9 = bitcast %struct.point80* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point80* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo81([2 x i64] %0) #0 { + %2 = alloca %struct.point81, align 4 + %3 = alloca %struct.point81, align 4 + %4 = bitcast %struct.point81* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point81* %2 to i8* + %6 = bitcast %struct.point81* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point81* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo82([2 x i64] %0) #0 { + %2 = alloca %struct.point82, align 4 + %3 = alloca %struct.point82, align 4 + %4 = bitcast %struct.point82* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point82* %2 to i8* + %6 = bitcast %struct.point82* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point82* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo83([2 x i64] %0) #0 { + %2 = alloca %struct.point83, align 4 + %3 = alloca %struct.point83, align 4 + %4 = bitcast %struct.point83* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point83* %2 to i8* + %6 = bitcast %struct.point83* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point83* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo84([2 x i64] %0) #0 { + %2 = alloca %struct.point84, align 4 + %3 = alloca %struct.point84, align 4 + %4 = bitcast %struct.point84* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point84* %2 to i8* + %6 = bitcast %struct.point84* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point84* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo85(i64 %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point85* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo86([2 x i64] %0) #0 { + %2 = alloca %struct.point86, align 4 + %3 = alloca %struct.point86, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point86* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point86* %2 to i8* + %9 = bitcast %struct.point86* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point86* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo87([2 x i64] %0) #0 { + %2 = alloca %struct.point87, align 4 + %3 = alloca %struct.point87, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point87* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point87* %2 to i8* + %9 = bitcast %struct.point87* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point87* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo88([2 x i64] %0) #0 { + %2 = alloca %struct.point88, align 4 + %3 = alloca %struct.point88, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point88* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point88* %2 to i8* + %9 = bitcast %struct.point88* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point88* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo89([2 x i64] %0) #0 { + %2 = alloca %struct.point89, align 4 + %3 = alloca %struct.point89, align 4 + %4 = bitcast %struct.point89* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point89* %2 to i8* + %6 = bitcast %struct.point89* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point89* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo90([2 x i64] %0) #0 { + %2 = alloca %struct.point90, align 4 + %3 = alloca %struct.point90, align 4 + %4 = bitcast %struct.point90* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point90* %2 to i8* + %6 = bitcast %struct.point90* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point90* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo91([2 x i64] %0) #0 { + %2 = alloca %struct.point91, align 4 + %3 = alloca %struct.point91, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point91* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point91* %2 to i8* + %9 = bitcast %struct.point91* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point91* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo92([2 x i64] %0) #0 { + %2 = alloca %struct.point92, align 4 + %3 = alloca %struct.point92, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point92* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point92* %2 to i8* + %9 = bitcast %struct.point92* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point92* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo93([2 x i64] %0) #0 { + %2 = alloca %struct.point93, align 4 + %3 = alloca %struct.point93, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point93* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point93* %2 to i8* + %9 = bitcast %struct.point93* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point93* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo94([2 x i64] %0) #0 { + %2 = alloca %struct.point94, align 4 + %3 = alloca %struct.point94, align 4 + %4 = bitcast %struct.point94* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point94* %2 to i8* + %6 = bitcast %struct.point94* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point94* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo95([2 x i64] %0) #0 { + %2 = alloca %struct.point95, align 4 + %3 = alloca %struct.point95, align 4 + %4 = bitcast %struct.point95* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point95* %2 to i8* + %6 = bitcast %struct.point95* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point95* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo96([2 x i64] %0) #0 { + %2 = alloca %struct.point96, align 4 + %3 = alloca %struct.point96, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point96* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point96* %2 to i8* + %9 = bitcast %struct.point96* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point96* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo97([2 x i64] %0) #0 { + %2 = alloca %struct.point97, align 4 + %3 = alloca %struct.point97, align 4 + %4 = bitcast %struct.point97* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point97* %2 to i8* + %6 = bitcast %struct.point97* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point97* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo98([2 x i64] %0) #0 { + %2 = alloca %struct.point98, align 4 + %3 = alloca %struct.point98, align 4 + %4 = bitcast %struct.point98* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point98* %2 to i8* + %6 = bitcast %struct.point98* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point98* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo99([2 x i64] %0) #0 { + %2 = alloca %struct.point99, align 4 + %3 = alloca %struct.point99, align 4 + %4 = bitcast %struct.point99* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point99* %2 to i8* + %6 = bitcast %struct.point99* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point99* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo100([2 x i64] %0) #0 { + %2 = alloca %struct.point100, align 4 + %3 = alloca %struct.point100, align 4 + %4 = bitcast %struct.point100* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point100* %2 to i8* + %6 = bitcast %struct.point100* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point100* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo101([2 x i64] %0) #0 { + %2 = alloca %struct.point101, align 4 + %3 = alloca %struct.point101, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point101* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point101* %2 to i8* + %9 = bitcast %struct.point101* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point101* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo102([2 x i64] %0) #0 { + %2 = alloca %struct.point102, align 4 + %3 = alloca %struct.point102, align 4 + %4 = bitcast %struct.point102* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point102* %2 to i8* + %6 = bitcast %struct.point102* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point102* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo103([2 x i64] %0) #0 { + %2 = alloca %struct.point103, align 4 + %3 = alloca %struct.point103, align 4 + %4 = bitcast %struct.point103* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point103* %2 to i8* + %6 = bitcast %struct.point103* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point103* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo104([2 x i64] %0) #0 { + %2 = alloca %struct.point104, align 4 + %3 = alloca %struct.point104, align 4 + %4 = bitcast %struct.point104* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point104* %2 to i8* + %6 = bitcast %struct.point104* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point104* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo105([2 x i64] %0) #0 { + %2 = alloca %struct.point105, align 4 + %3 = alloca %struct.point105, align 4 + %4 = bitcast %struct.point105* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point105* %2 to i8* + %6 = bitcast %struct.point105* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point105* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo106(i64 %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point106* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo107([2 x i64] %0) #0 { + %2 = alloca %struct.point107, align 4 + %3 = alloca %struct.point107, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point107* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point107* %2 to i8* + %9 = bitcast %struct.point107* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point107* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo108([2 x i64] %0) #0 { + %2 = alloca %struct.point108, align 4 + %3 = alloca %struct.point108, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point108* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point108* %2 to i8* + %9 = bitcast %struct.point108* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point108* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo109([2 x i64] %0) #0 { + %2 = alloca %struct.point109, align 4 + %3 = alloca %struct.point109, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point109* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point109* %2 to i8* + %9 = bitcast %struct.point109* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point109* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo110([2 x i64] %0) #0 { + %2 = alloca %struct.point110, align 4 + %3 = alloca %struct.point110, align 4 + %4 = bitcast %struct.point110* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point110* %2 to i8* + %6 = bitcast %struct.point110* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point110* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo111([2 x i64] %0) #0 { + %2 = alloca %struct.point111, align 4 + %3 = alloca %struct.point111, align 4 + %4 = bitcast %struct.point111* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point111* %2 to i8* + %6 = bitcast %struct.point111* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point111* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo112([2 x i64] %0) #0 { + %2 = alloca %struct.point112, align 4 + %3 = alloca %struct.point112, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point112* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point112* %2 to i8* + %9 = bitcast %struct.point112* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point112* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo113([2 x i64] %0) #0 { + %2 = alloca %struct.point113, align 4 + %3 = alloca %struct.point113, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point113* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point113* %2 to i8* + %9 = bitcast %struct.point113* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point113* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo114([2 x i64] %0) #0 { + %2 = alloca %struct.point114, align 4 + %3 = alloca %struct.point114, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point114* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point114* %2 to i8* + %9 = bitcast %struct.point114* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point114* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo115([2 x i64] %0) #0 { + %2 = alloca %struct.point115, align 4 + %3 = alloca %struct.point115, align 4 + %4 = bitcast %struct.point115* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point115* %2 to i8* + %6 = bitcast %struct.point115* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point115* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo116([2 x i64] %0) #0 { + %2 = alloca %struct.point116, align 4 + %3 = alloca %struct.point116, align 4 + %4 = bitcast %struct.point116* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point116* %2 to i8* + %6 = bitcast %struct.point116* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point116* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo117([2 x i64] %0) #0 { + %2 = alloca %struct.point117, align 4 + %3 = alloca %struct.point117, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point117* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point117* %2 to i8* + %9 = bitcast %struct.point117* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point117* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo118([2 x i64] %0) #0 { + %2 = alloca %struct.point118, align 4 + %3 = alloca %struct.point118, align 4 + %4 = bitcast %struct.point118* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point118* %2 to i8* + %6 = bitcast %struct.point118* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point118* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo119([2 x i64] %0) #0 { + %2 = alloca %struct.point119, align 4 + %3 = alloca %struct.point119, align 4 + %4 = bitcast %struct.point119* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point119* %2 to i8* + %6 = bitcast %struct.point119* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point119* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo120([2 x i64] %0) #0 { + %2 = alloca %struct.point120, align 4 + %3 = alloca %struct.point120, align 4 + %4 = bitcast %struct.point120* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point120* %2 to i8* + %6 = bitcast %struct.point120* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point120* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo121([2 x i64] %0) #0 { + %2 = alloca %struct.point121, align 4 + %3 = alloca %struct.point121, align 4 + %4 = bitcast %struct.point121* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point121* %2 to i8* + %6 = bitcast %struct.point121* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point121* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo122([2 x i64] %0) #0 { + %2 = alloca %struct.point122, align 4 + %3 = alloca %struct.point122, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point122* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point122* %2 to i8* + %9 = bitcast %struct.point122* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point122* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo123([2 x i64] %0) #0 { + %2 = alloca %struct.point123, align 4 + %3 = alloca %struct.point123, align 4 + %4 = bitcast %struct.point123* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point123* %2 to i8* + %6 = bitcast %struct.point123* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point123* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo124([2 x i64] %0) #0 { + %2 = alloca %struct.point124, align 4 + %3 = alloca %struct.point124, align 4 + %4 = bitcast %struct.point124* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point124* %2 to i8* + %6 = bitcast %struct.point124* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point124* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo125([2 x i64] %0) #0 { + %2 = alloca %struct.point125, align 4 + %3 = alloca %struct.point125, align 4 + %4 = bitcast %struct.point125* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point125* %2 to i8* + %6 = bitcast %struct.point125* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point125* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo126([2 x i64] %0) #0 { + %2 = alloca %struct.point126, align 4 + %3 = alloca %struct.point126, align 4 + %4 = bitcast %struct.point126* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point126* %2 to i8* + %6 = bitcast %struct.point126* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point126* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo127([2 x i64] %0) #0 { + %2 = alloca %struct.point127, align 4 + %3 = alloca %struct.point127, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point127* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point127* %2 to i8* + %9 = bitcast %struct.point127* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point127* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo128([2 x i64] %0) #0 { + %2 = alloca %struct.point128, align 4 + %3 = alloca %struct.point128, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point128* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point128* %2 to i8* + %9 = bitcast %struct.point128* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point128* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo129([2 x i64] %0) #0 { + %2 = alloca %struct.point129, align 4 + %3 = alloca %struct.point129, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point129* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point129* %2 to i8* + %9 = bitcast %struct.point129* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point129* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo130([2 x i64] %0) #0 { + %2 = alloca %struct.point130, align 4 + %3 = alloca %struct.point130, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point130* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point130* %2 to i8* + %9 = bitcast %struct.point130* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point130* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo131([2 x i64] %0) #0 { + %2 = alloca %struct.point131, align 4 + %3 = alloca %struct.point131, align 4 + %4 = bitcast %struct.point131* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point131* %2 to i8* + %6 = bitcast %struct.point131* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point131* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo132([2 x i64] %0) #0 { + %2 = alloca %struct.point132, align 4 + %3 = alloca %struct.point132, align 4 + %4 = bitcast %struct.point132* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point132* %2 to i8* + %6 = bitcast %struct.point132* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point132* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo133([2 x i64] %0) #0 { + %2 = alloca %struct.point133, align 4 + %3 = alloca %struct.point133, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point133* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point133* %2 to i8* + %9 = bitcast %struct.point133* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point133* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo134([2 x i64] %0) #0 { + %2 = alloca %struct.point134, align 4 + %3 = alloca %struct.point134, align 4 + %4 = bitcast %struct.point134* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point134* %2 to i8* + %6 = bitcast %struct.point134* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point134* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo135([2 x i64] %0) #0 { + %2 = alloca %struct.point135, align 4 + %3 = alloca %struct.point135, align 4 + %4 = bitcast %struct.point135* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point135* %2 to i8* + %6 = bitcast %struct.point135* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point135* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo136([2 x i64] %0) #0 { + %2 = alloca %struct.point136, align 4 + %3 = alloca %struct.point136, align 4 + %4 = bitcast %struct.point136* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point136* %2 to i8* + %6 = bitcast %struct.point136* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point136* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo137([2 x i64] %0) #0 { + %2 = alloca %struct.point137, align 4 + %3 = alloca %struct.point137, align 4 + %4 = bitcast %struct.point137* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point137* %2 to i8* + %6 = bitcast %struct.point137* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point137* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo138([2 x i64] %0) #0 { + %2 = alloca %struct.point138, align 4 + %3 = alloca %struct.point138, align 4 + %4 = bitcast %struct.point138* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point138* %2 to i8* + %6 = bitcast %struct.point138* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point138* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef %1) #0 { + %3 = bitcast %struct.point139* %0 to i8* + %4 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef %1) #0 { + %3 = bitcast %struct.point140* %0 to i8* + %4 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef %1) #0 { + %3 = bitcast %struct.point141* %0 to i8* + %4 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef %1) #0 { + %3 = bitcast %struct.point142* %0 to i8* + %4 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo143([2 x i64] %0) #0 { + %2 = alloca %struct.point143, align 4 + %3 = alloca %struct.point143, align 4 + %4 = bitcast %struct.point143* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point143* %2 to i8* + %6 = bitcast %struct.point143* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point143* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef %1) #0 { + %3 = bitcast %struct.point144* %0 to i8* + %4 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef %1) #0 { + %3 = bitcast %struct.point145* %0 to i8* + %4 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef %1) #0 { + %3 = bitcast %struct.point146* %0 to i8* + %4 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef %1) #0 { + %3 = bitcast %struct.point147* %0 to i8* + %4 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo148([2 x i64] %0) #0 { + %2 = alloca %struct.point148, align 4 + %3 = alloca %struct.point148, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point148* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point148* %2 to i8* + %9 = bitcast %struct.point148* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point148* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo149([2 x i64] %0) #0 { + %2 = alloca %struct.point149, align 4 + %3 = alloca %struct.point149, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point149* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point149* %2 to i8* + %9 = bitcast %struct.point149* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point149* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo150([2 x i64] %0) #0 { + %2 = alloca %struct.point150, align 4 + %3 = alloca %struct.point150, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point150* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point150* %2 to i8* + %9 = bitcast %struct.point150* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point150* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo151([2 x i64] %0) #0 { + %2 = alloca %struct.point151, align 4 + %3 = alloca %struct.point151, align 4 + %4 = bitcast %struct.point151* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point151* %2 to i8* + %6 = bitcast %struct.point151* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point151* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo152([2 x i64] %0) #0 { + %2 = alloca %struct.point152, align 4 + %3 = alloca %struct.point152, align 4 + %4 = bitcast %struct.point152* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point152* %2 to i8* + %6 = bitcast %struct.point152* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point152* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo153([2 x i64] %0) #0 { + %2 = alloca %struct.point153, align 4 + %3 = alloca %struct.point153, align 4 + %4 = bitcast %struct.point153* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point153* %2 to i8* + %6 = bitcast %struct.point153* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point153* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo154([2 x i64] %0) #0 { + %2 = alloca %struct.point154, align 4 + %3 = alloca %struct.point154, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point154* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point154* %2 to i8* + %9 = bitcast %struct.point154* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point154* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo155([2 x i64] %0) #0 { + %2 = alloca %struct.point155, align 4 + %3 = alloca %struct.point155, align 4 + %4 = bitcast %struct.point155* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point155* %2 to i8* + %6 = bitcast %struct.point155* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point155* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo156([2 x i64] %0) #0 { + %2 = alloca %struct.point156, align 4 + %3 = alloca %struct.point156, align 4 + %4 = bitcast %struct.point156* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point156* %2 to i8* + %6 = bitcast %struct.point156* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point156* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo157([2 x i64] %0) #0 { + %2 = alloca %struct.point157, align 4 + %3 = alloca %struct.point157, align 4 + %4 = bitcast %struct.point157* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point157* %2 to i8* + %6 = bitcast %struct.point157* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point157* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo158([2 x i64] %0) #0 { + %2 = alloca %struct.point158, align 4 + %3 = alloca %struct.point158, align 4 + %4 = bitcast %struct.point158* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point158* %2 to i8* + %6 = bitcast %struct.point158* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point158* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo159([2 x i64] %0) #0 { + %2 = alloca %struct.point159, align 4 + %3 = alloca %struct.point159, align 4 + %4 = bitcast %struct.point159* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point159* %2 to i8* + %6 = bitcast %struct.point159* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point159* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef %1) #0 { + %3 = bitcast %struct.point160* %0 to i8* + %4 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef %1) #0 { + %3 = bitcast %struct.point161* %0 to i8* + %4 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef %1) #0 { + %3 = bitcast %struct.point162* %0 to i8* + %4 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef %1) #0 { + %3 = bitcast %struct.point163* %0 to i8* + %4 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo164([2 x i64] %0) #0 { + %2 = alloca %struct.point164, align 4 + %3 = alloca %struct.point164, align 4 + %4 = bitcast %struct.point164* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point164* %2 to i8* + %6 = bitcast %struct.point164* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point164* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef %1) #0 { + %3 = bitcast %struct.point165* %0 to i8* + %4 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef %1) #0 { + %3 = bitcast %struct.point166* %0 to i8* + %4 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef %1) #0 { + %3 = bitcast %struct.point167* %0 to i8* + %4 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef %1) #0 { + %3 = bitcast %struct.point168* %0 to i8* + %4 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo169([2 x i64] %0) #0 { + %2 = alloca %struct.point169, align 4 + %3 = alloca %struct.point169, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point169* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point169* %2 to i8* + %9 = bitcast %struct.point169* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point169* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo170([2 x i64] %0) #0 { + %2 = alloca %struct.point170, align 4 + %3 = alloca %struct.point170, align 4 + %4 = bitcast %struct.point170* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point170* %2 to i8* + %6 = bitcast %struct.point170* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point170* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo171([2 x i64] %0) #0 { + %2 = alloca %struct.point171, align 4 + %3 = alloca %struct.point171, align 4 + %4 = bitcast %struct.point171* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point171* %2 to i8* + %6 = bitcast %struct.point171* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point171* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo172([2 x i64] %0) #0 { + %2 = alloca %struct.point172, align 4 + %3 = alloca %struct.point172, align 4 + %4 = bitcast %struct.point172* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point172* %2 to i8* + %6 = bitcast %struct.point172* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point172* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef %1) #0 { + %3 = bitcast %struct.point173* %0 to i8* + %4 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef %1) #0 { + %3 = bitcast %struct.point174* %0 to i8* + %4 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo175([2 x i64] %0) #0 { + %2 = alloca %struct.point175, align 4 + %3 = alloca %struct.point175, align 4 + %4 = bitcast %struct.point175* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point175* %2 to i8* + %6 = bitcast %struct.point175* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point175* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo176([2 x i64] %0) #0 { + %2 = alloca %struct.point176, align 4 + %3 = alloca %struct.point176, align 4 + %4 = bitcast %struct.point176* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point176* %2 to i8* + %6 = bitcast %struct.point176* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point176* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo177([2 x i64] %0) #0 { + %2 = alloca %struct.point177, align 4 + %3 = alloca %struct.point177, align 4 + %4 = bitcast %struct.point177* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point177* %2 to i8* + %6 = bitcast %struct.point177* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point177* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef %1) #0 { + %3 = bitcast %struct.point178* %0 to i8* + %4 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef %1) #0 { + %3 = bitcast %struct.point179* %0 to i8* + %4 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo180([2 x i64] %0) #0 { + %2 = alloca %struct.point180, align 4 + %3 = alloca %struct.point180, align 4 + %4 = bitcast %struct.point180* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point180* %2 to i8* + %6 = bitcast %struct.point180* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point180* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef %1) #0 { + %3 = bitcast %struct.point181* %0 to i8* + %4 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef %1) #0 { + %3 = bitcast %struct.point182* %0 to i8* + %4 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef %1) #0 { + %3 = bitcast %struct.point183* %0 to i8* + %4 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef %1) #0 { + %3 = bitcast %struct.point184* %0 to i8* + %4 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo185([2 x i64] %0) #0 { + %2 = alloca %struct.point185, align 4 + %3 = alloca %struct.point185, align 4 + %4 = bitcast %struct.point185* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point185* %2 to i8* + %6 = bitcast %struct.point185* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point185* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef %1) #0 { + %3 = bitcast %struct.point186* %0 to i8* + %4 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef %1) #0 { + %3 = bitcast %struct.point187* %0 to i8* + %4 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef %1) #0 { + %3 = bitcast %struct.point188* %0 to i8* + %4 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef %1) #0 { + %3 = bitcast %struct.point189* %0 to i8* + %4 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo190([2 x i64] %0) #0 { + %2 = alloca %struct.point190, align 4 + %3 = alloca %struct.point190, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point190* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point190* %2 to i8* + %9 = bitcast %struct.point190* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point190* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo191([2 x i64] %0) #0 { + %2 = alloca %struct.point191, align 4 + %3 = alloca %struct.point191, align 4 + %4 = bitcast %struct.point191* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point191* %2 to i8* + %6 = bitcast %struct.point191* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point191* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo192([2 x i64] %0) #0 { + %2 = alloca %struct.point192, align 4 + %3 = alloca %struct.point192, align 4 + %4 = bitcast %struct.point192* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point192* %2 to i8* + %6 = bitcast %struct.point192* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point192* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo193([2 x i64] %0) #0 { + %2 = alloca %struct.point193, align 4 + %3 = alloca %struct.point193, align 4 + %4 = bitcast %struct.point193* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point193* %2 to i8* + %6 = bitcast %struct.point193* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point193* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef %1) #0 { + %3 = bitcast %struct.point194* %0 to i8* + %4 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef %1) #0 { + %3 = bitcast %struct.point195* %0 to i8* + %4 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo196([2 x i64] %0) #0 { + %2 = alloca %struct.point196, align 4 + %3 = alloca %struct.point196, align 4 + %4 = bitcast %struct.point196* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point196* %2 to i8* + %6 = bitcast %struct.point196* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point196* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo197([2 x i64] %0) #0 { + %2 = alloca %struct.point197, align 4 + %3 = alloca %struct.point197, align 4 + %4 = bitcast %struct.point197* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point197* %2 to i8* + %6 = bitcast %struct.point197* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point197* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo198([2 x i64] %0) #0 { + %2 = alloca %struct.point198, align 4 + %3 = alloca %struct.point198, align 4 + %4 = bitcast %struct.point198* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point198* %2 to i8* + %6 = bitcast %struct.point198* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point198* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef %1) #0 { + %3 = bitcast %struct.point199* %0 to i8* + %4 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef %1) #0 { + %3 = bitcast %struct.point200* %0 to i8* + %4 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo201([2 x i64] %0) #0 { + %2 = alloca %struct.point201, align 4 + %3 = alloca %struct.point201, align 4 + %4 = bitcast %struct.point201* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point201* %2 to i8* + %6 = bitcast %struct.point201* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point201* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef %1) #0 { + %3 = bitcast %struct.point202* %0 to i8* + %4 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef %1) #0 { + %3 = bitcast %struct.point203* %0 to i8* + %4 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef %1) #0 { + %3 = bitcast %struct.point204* %0 to i8* + %4 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef %1) #0 { + %3 = bitcast %struct.point205* %0 to i8* + %4 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo206([2 x i64] %0) #0 { + %2 = alloca %struct.point206, align 4 + %3 = alloca %struct.point206, align 4 + %4 = bitcast %struct.point206* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point206* %2 to i8* + %6 = bitcast %struct.point206* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point206* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef %1) #0 { + %3 = bitcast %struct.point207* %0 to i8* + %4 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef %1) #0 { + %3 = bitcast %struct.point208* %0 to i8* + %4 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef %1) #0 { + %3 = bitcast %struct.point209* %0 to i8* + %4 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef %1) #0 { + %3 = bitcast %struct.point210* %0 to i8* + %4 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo211([2 x i64] %0) #0 { + %2 = alloca %struct.point211, align 4 + %3 = alloca %struct.point211, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point211* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point211* %2 to i8* + %9 = bitcast %struct.point211* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point211* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo212([2 x i64] %0) #0 { + %2 = alloca %struct.point212, align 4 + %3 = alloca %struct.point212, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point212* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point212* %2 to i8* + %9 = bitcast %struct.point212* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point212* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo213([2 x i64] %0) #0 { + %2 = alloca %struct.point213, align 4 + %3 = alloca %struct.point213, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point213* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point213* %2 to i8* + %9 = bitcast %struct.point213* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point213* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo214([2 x i64] %0) #0 { + %2 = alloca %struct.point214, align 4 + %3 = alloca %struct.point214, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point214* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point214* %2 to i8* + %9 = bitcast %struct.point214* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point214* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo215([2 x i64] %0) #0 { + %2 = alloca %struct.point215, align 4 + %3 = alloca %struct.point215, align 4 + %4 = bitcast %struct.point215* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point215* %2 to i8* + %6 = bitcast %struct.point215* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point215* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo216([2 x i64] %0) #0 { + %2 = alloca %struct.point216, align 4 + %3 = alloca %struct.point216, align 4 + %4 = bitcast %struct.point216* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point216* %2 to i8* + %6 = bitcast %struct.point216* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point216* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo217([2 x i64] %0) #0 { + %2 = alloca %struct.point217, align 4 + %3 = alloca %struct.point217, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point217* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point217* %2 to i8* + %9 = bitcast %struct.point217* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point217* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo218([2 x i64] %0) #0 { + %2 = alloca %struct.point218, align 4 + %3 = alloca %struct.point218, align 4 + %4 = bitcast %struct.point218* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point218* %2 to i8* + %6 = bitcast %struct.point218* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point218* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo219([2 x i64] %0) #0 { + %2 = alloca %struct.point219, align 4 + %3 = alloca %struct.point219, align 4 + %4 = bitcast %struct.point219* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point219* %2 to i8* + %6 = bitcast %struct.point219* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point219* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo220([2 x i64] %0) #0 { + %2 = alloca %struct.point220, align 4 + %3 = alloca %struct.point220, align 4 + %4 = bitcast %struct.point220* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point220* %2 to i8* + %6 = bitcast %struct.point220* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point220* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo221([2 x i64] %0) #0 { + %2 = alloca %struct.point221, align 4 + %3 = alloca %struct.point221, align 4 + %4 = bitcast %struct.point221* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point221* %2 to i8* + %6 = bitcast %struct.point221* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point221* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo222([2 x i64] %0) #0 { + %2 = alloca %struct.point222, align 4 + %3 = alloca %struct.point222, align 4 + %4 = bitcast %struct.point222* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point222* %2 to i8* + %6 = bitcast %struct.point222* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point222* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef %1) #0 { + %3 = bitcast %struct.point223* %0 to i8* + %4 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef %1) #0 { + %3 = bitcast %struct.point224* %0 to i8* + %4 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef %1) #0 { + %3 = bitcast %struct.point225* %0 to i8* + %4 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef %1) #0 { + %3 = bitcast %struct.point226* %0 to i8* + %4 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo227([2 x i64] %0) #0 { + %2 = alloca %struct.point227, align 4 + %3 = alloca %struct.point227, align 4 + %4 = bitcast %struct.point227* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point227* %2 to i8* + %6 = bitcast %struct.point227* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point227* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef %1) #0 { + %3 = bitcast %struct.point228* %0 to i8* + %4 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef %1) #0 { + %3 = bitcast %struct.point229* %0 to i8* + %4 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef %1) #0 { + %3 = bitcast %struct.point230* %0 to i8* + %4 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef %1) #0 { + %3 = bitcast %struct.point231* %0 to i8* + %4 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo232([2 x i64] %0) #0 { + %2 = alloca %struct.point232, align 4 + %3 = alloca %struct.point232, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point232* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point232* %2 to i8* + %9 = bitcast %struct.point232* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point232* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo233([2 x i64] %0) #0 { + %2 = alloca %struct.point233, align 4 + %3 = alloca %struct.point233, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point233* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point233* %2 to i8* + %9 = bitcast %struct.point233* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point233* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo234([2 x i64] %0) #0 { + %2 = alloca %struct.point234, align 4 + %3 = alloca %struct.point234, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point234* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point234* %2 to i8* + %9 = bitcast %struct.point234* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point234* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo235([2 x i64] %0) #0 { + %2 = alloca %struct.point235, align 4 + %3 = alloca %struct.point235, align 4 + %4 = bitcast %struct.point235* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point235* %2 to i8* + %6 = bitcast %struct.point235* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point235* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo236([2 x i64] %0) #0 { + %2 = alloca %struct.point236, align 4 + %3 = alloca %struct.point236, align 4 + %4 = bitcast %struct.point236* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point236* %2 to i8* + %6 = bitcast %struct.point236* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point236* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo237([2 x i64] %0) #0 { + %2 = alloca %struct.point237, align 4 + %3 = alloca %struct.point237, align 4 + %4 = bitcast %struct.point237* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point237* %2 to i8* + %6 = bitcast %struct.point237* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point237* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo238([2 x i64] %0) #0 { + %2 = alloca %struct.point238, align 4 + %3 = alloca %struct.point238, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point238* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point238* %2 to i8* + %9 = bitcast %struct.point238* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point238* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo239([2 x i64] %0) #0 { + %2 = alloca %struct.point239, align 4 + %3 = alloca %struct.point239, align 4 + %4 = bitcast %struct.point239* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point239* %2 to i8* + %6 = bitcast %struct.point239* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point239* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo240([2 x i64] %0) #0 { + %2 = alloca %struct.point240, align 4 + %3 = alloca %struct.point240, align 4 + %4 = bitcast %struct.point240* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point240* %2 to i8* + %6 = bitcast %struct.point240* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point240* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo241([2 x i64] %0) #0 { + %2 = alloca %struct.point241, align 4 + %3 = alloca %struct.point241, align 4 + %4 = bitcast %struct.point241* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point241* %2 to i8* + %6 = bitcast %struct.point241* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point241* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo242([2 x i64] %0) #0 { + %2 = alloca %struct.point242, align 4 + %3 = alloca %struct.point242, align 4 + %4 = bitcast %struct.point242* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point242* %2 to i8* + %6 = bitcast %struct.point242* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point242* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo243([2 x i64] %0) #0 { + %2 = alloca %struct.point243, align 4 + %3 = alloca %struct.point243, align 4 + %4 = bitcast %struct.point243* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point243* %2 to i8* + %6 = bitcast %struct.point243* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point243* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef %1) #0 { + %3 = bitcast %struct.point244* %0 to i8* + %4 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef %1) #0 { + %3 = bitcast %struct.point245* %0 to i8* + %4 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef %1) #0 { + %3 = bitcast %struct.point246* %0 to i8* + %4 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef %1) #0 { + %3 = bitcast %struct.point247* %0 to i8* + %4 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo248([2 x i64] %0) #0 { + %2 = alloca %struct.point248, align 4 + %3 = alloca %struct.point248, align 4 + %4 = bitcast %struct.point248* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point248* %2 to i8* + %6 = bitcast %struct.point248* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point248* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef %1) #0 { + %3 = bitcast %struct.point249* %0 to i8* + %4 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef %1) #0 { + %3 = bitcast %struct.point250* %0 to i8* + %4 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef %1) #0 { + %3 = bitcast %struct.point251* %0 to i8* + %4 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef %1) #0 { + %3 = bitcast %struct.point252* %0 to i8* + %4 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo253([2 x i64] %0) #0 { + %2 = alloca %struct.point253, align 4 + %3 = alloca %struct.point253, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point253* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point253* %2 to i8* + %9 = bitcast %struct.point253* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point253* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo254([2 x i64] %0) #0 { + %2 = alloca %struct.point254, align 4 + %3 = alloca %struct.point254, align 4 + %4 = bitcast %struct.point254* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point254* %2 to i8* + %6 = bitcast %struct.point254* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point254* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo255([2 x i64] %0) #0 { + %2 = alloca %struct.point255, align 4 + %3 = alloca %struct.point255, align 4 + %4 = bitcast %struct.point255* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point255* %2 to i8* + %6 = bitcast %struct.point255* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point255* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo256([2 x i64] %0) #0 { + %2 = alloca %struct.point256, align 4 + %3 = alloca %struct.point256, align 4 + %4 = bitcast %struct.point256* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point256* %2 to i8* + %6 = bitcast %struct.point256* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point256* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef %1) #0 { + %3 = bitcast %struct.point257* %0 to i8* + %4 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef %1) #0 { + %3 = bitcast %struct.point258* %0 to i8* + %4 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo259([2 x i64] %0) #0 { + %2 = alloca %struct.point259, align 4 + %3 = alloca %struct.point259, align 4 + %4 = bitcast %struct.point259* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point259* %2 to i8* + %6 = bitcast %struct.point259* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point259* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo260([2 x i64] %0) #0 { + %2 = alloca %struct.point260, align 4 + %3 = alloca %struct.point260, align 4 + %4 = bitcast %struct.point260* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point260* %2 to i8* + %6 = bitcast %struct.point260* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point260* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo261([2 x i64] %0) #0 { + %2 = alloca %struct.point261, align 4 + %3 = alloca %struct.point261, align 4 + %4 = bitcast %struct.point261* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point261* %2 to i8* + %6 = bitcast %struct.point261* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point261* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef %1) #0 { + %3 = bitcast %struct.point262* %0 to i8* + %4 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef %1) #0 { + %3 = bitcast %struct.point263* %0 to i8* + %4 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo264([2 x i64] %0) #0 { + %2 = alloca %struct.point264, align 4 + %3 = alloca %struct.point264, align 4 + %4 = bitcast %struct.point264* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point264* %2 to i8* + %6 = bitcast %struct.point264* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point264* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef %1) #0 { + %3 = bitcast %struct.point265* %0 to i8* + %4 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef %1) #0 { + %3 = bitcast %struct.point266* %0 to i8* + %4 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef %1) #0 { + %3 = bitcast %struct.point267* %0 to i8* + %4 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef %1) #0 { + %3 = bitcast %struct.point268* %0 to i8* + %4 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo269([2 x i64] %0) #0 { + %2 = alloca %struct.point269, align 4 + %3 = alloca %struct.point269, align 4 + %4 = bitcast %struct.point269* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point269* %2 to i8* + %6 = bitcast %struct.point269* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point269* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef %1) #0 { + %3 = bitcast %struct.point270* %0 to i8* + %4 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef %1) #0 { + %3 = bitcast %struct.point271* %0 to i8* + %4 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef %1) #0 { + %3 = bitcast %struct.point272* %0 to i8* + %4 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef %1) #0 { + %3 = bitcast %struct.point273* %0 to i8* + %4 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo274([2 x i64] %0) #0 { + %2 = alloca %struct.point274, align 4 + %3 = alloca %struct.point274, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point274* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point274* %2 to i8* + %9 = bitcast %struct.point274* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point274* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo275([2 x i64] %0) #0 { + %2 = alloca %struct.point275, align 4 + %3 = alloca %struct.point275, align 4 + %4 = bitcast %struct.point275* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point275* %2 to i8* + %6 = bitcast %struct.point275* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point275* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo276([2 x i64] %0) #0 { + %2 = alloca %struct.point276, align 4 + %3 = alloca %struct.point276, align 4 + %4 = bitcast %struct.point276* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point276* %2 to i8* + %6 = bitcast %struct.point276* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point276* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo277([2 x i64] %0) #0 { + %2 = alloca %struct.point277, align 4 + %3 = alloca %struct.point277, align 4 + %4 = bitcast %struct.point277* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point277* %2 to i8* + %6 = bitcast %struct.point277* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point277* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef %1) #0 { + %3 = bitcast %struct.point278* %0 to i8* + %4 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef %1) #0 { + %3 = bitcast %struct.point279* %0 to i8* + %4 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo280([2 x i64] %0) #0 { + %2 = alloca %struct.point280, align 4 + %3 = alloca %struct.point280, align 4 + %4 = bitcast %struct.point280* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point280* %2 to i8* + %6 = bitcast %struct.point280* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point280* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo281([2 x i64] %0) #0 { + %2 = alloca %struct.point281, align 4 + %3 = alloca %struct.point281, align 4 + %4 = bitcast %struct.point281* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point281* %2 to i8* + %6 = bitcast %struct.point281* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point281* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo282([2 x i64] %0) #0 { + %2 = alloca %struct.point282, align 4 + %3 = alloca %struct.point282, align 4 + %4 = bitcast %struct.point282* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point282* %2 to i8* + %6 = bitcast %struct.point282* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point282* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef %1) #0 { + %3 = bitcast %struct.point283* %0 to i8* + %4 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef %1) #0 { + %3 = bitcast %struct.point284* %0 to i8* + %4 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo285([2 x i64] %0) #0 { + %2 = alloca %struct.point285, align 4 + %3 = alloca %struct.point285, align 4 + %4 = bitcast %struct.point285* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point285* %2 to i8* + %6 = bitcast %struct.point285* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point285* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef %1) #0 { + %3 = bitcast %struct.point286* %0 to i8* + %4 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef %1) #0 { + %3 = bitcast %struct.point287* %0 to i8* + %4 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef %1) #0 { + %3 = bitcast %struct.point288* %0 to i8* + %4 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef %1) #0 { + %3 = bitcast %struct.point289* %0 to i8* + %4 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo290([2 x i64] %0) #0 { + %2 = alloca %struct.point290, align 4 + %3 = alloca %struct.point290, align 4 + %4 = bitcast %struct.point290* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point290* %2 to i8* + %6 = bitcast %struct.point290* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point290* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef %1) #0 { + %3 = bitcast %struct.point291* %0 to i8* + %4 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef %1) #0 { + %3 = bitcast %struct.point292* %0 to i8* + %4 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef %1) #0 { + %3 = bitcast %struct.point293* %0 to i8* + %4 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef %1) #0 { + %3 = bitcast %struct.point294* %0 to i8* + %4 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo295(i64 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point295* %3 to i8* + %6 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 8 %6, i64 4, i1 false) + %7 = bitcast %struct.point295* %2 to i8* + %8 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 2 %8, i64 4, i1 false) + %9 = bitcast %struct.point295* %2 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo296(i64 %0) #0 { + %2 = alloca %struct.point296, align 2 + %3 = alloca %struct.point296, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo297(i64 %0) #0 { + %2 = alloca %struct.point297, align 2 + %3 = alloca %struct.point297, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo298(i64 %0) #0 { + %2 = alloca %struct.point298, align 2 + %3 = alloca %struct.point298, align 2 + %4 = bitcast %struct.point298* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point298* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo299([2 x i64] %0) #0 { + %2 = alloca %struct.point299, align 4 + %3 = alloca %struct.point299, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point299* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point299* %2 to i8* + %9 = bitcast %struct.point299* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point299* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo300([2 x i64] %0) #0 { + %2 = alloca %struct.point300, align 4 + %3 = alloca %struct.point300, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point300* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point300* %2 to i8* + %9 = bitcast %struct.point300* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point300* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo301(i64 %0) #0 { + %2 = alloca %struct.point301, align 2 + %3 = alloca %struct.point301, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo302(i64 %0) #0 { + %2 = alloca %struct.point302, align 2 + %3 = alloca %struct.point302, align 2 + %4 = bitcast %struct.point302* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point302* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo303(i64 %0) #0 { + %2 = alloca %struct.point303, align 2 + %3 = alloca %struct.point303, align 2 + %4 = bitcast %struct.point303* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point303* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo304([2 x i64] %0) #0 { + %2 = alloca %struct.point304, align 4 + %3 = alloca %struct.point304, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point304* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point304* %2 to i8* + %9 = bitcast %struct.point304* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point304* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo305([2 x i64] %0) #0 { + %2 = alloca %struct.point305, align 4 + %3 = alloca %struct.point305, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point305* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point305* %2 to i8* + %9 = bitcast %struct.point305* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point305* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo306(i64 %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point306* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo307([2 x i64] %0) #0 { + %2 = alloca %struct.point307, align 4 + %3 = alloca %struct.point307, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point307* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point307* %2 to i8* + %9 = bitcast %struct.point307* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point307* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo308([2 x i64] %0) #0 { + %2 = alloca %struct.point308, align 4 + %3 = alloca %struct.point308, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point308* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point308* %2 to i8* + %9 = bitcast %struct.point308* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point308* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo309([2 x i64] %0) #0 { + %2 = alloca %struct.point309, align 4 + %3 = alloca %struct.point309, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point309* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point309* %2 to i8* + %9 = bitcast %struct.point309* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point309* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo310([2 x i64] %0) #0 { + %2 = alloca %struct.point310, align 4 + %3 = alloca %struct.point310, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point310* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point310* %2 to i8* + %9 = bitcast %struct.point310* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point310* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo311(i64 %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point311* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo312([2 x i64] %0) #0 { + %2 = alloca %struct.point312, align 4 + %3 = alloca %struct.point312, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point312* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point312* %2 to i8* + %9 = bitcast %struct.point312* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point312* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo313([2 x i64] %0) #0 { + %2 = alloca %struct.point313, align 4 + %3 = alloca %struct.point313, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point313* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point313* %2 to i8* + %9 = bitcast %struct.point313* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point313* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo314([2 x i64] %0) #0 { + %2 = alloca %struct.point314, align 4 + %3 = alloca %struct.point314, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point314* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point314* %2 to i8* + %9 = bitcast %struct.point314* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point314* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo315([2 x i64] %0) #0 { + %2 = alloca %struct.point315, align 4 + %3 = alloca %struct.point315, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point315* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point315* %2 to i8* + %9 = bitcast %struct.point315* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point315* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i48 @demo316(i64 %0) #0 { + %2 = alloca %struct.point316, align 2 + %3 = alloca %struct.point316, align 2 + %4 = alloca i64, align 8 + %5 = alloca i48, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i48* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i48, i48* %5, align 8 + ret i48 %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo317(i64 %0) #0 { + %2 = alloca %struct.point317, align 2 + %3 = alloca %struct.point317, align 2 + %4 = bitcast %struct.point317* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point317* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo318(i64 %0) #0 { + %2 = alloca %struct.point318, align 2 + %3 = alloca %struct.point318, align 2 + %4 = bitcast %struct.point318* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point318* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo319([2 x i64] %0) #0 { + %2 = alloca %struct.point319, align 2 + %3 = alloca %struct.point319, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point319* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point319* %2 to i8* + %9 = bitcast %struct.point319* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point319* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo320([2 x i64] %0) #0 { + %2 = alloca %struct.point320, align 4 + %3 = alloca %struct.point320, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point320* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point320* %2 to i8* + %9 = bitcast %struct.point320* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point320* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo321([2 x i64] %0) #0 { + %2 = alloca %struct.point321, align 4 + %3 = alloca %struct.point321, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point321* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point321* %2 to i8* + %9 = bitcast %struct.point321* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point321* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo322(i64 %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point322* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo323([2 x i64] %0) #0 { + %2 = alloca %struct.point323, align 2 + %3 = alloca %struct.point323, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point323* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point323* %2 to i8* + %9 = bitcast %struct.point323* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point323* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo324([2 x i64] %0) #0 { + %2 = alloca %struct.point324, align 2 + %3 = alloca %struct.point324, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point324* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point324* %2 to i8* + %9 = bitcast %struct.point324* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point324* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo325([2 x i64] %0) #0 { + %2 = alloca %struct.point325, align 4 + %3 = alloca %struct.point325, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point325* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point325* %2 to i8* + %9 = bitcast %struct.point325* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point325* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo326([2 x i64] %0) #0 { + %2 = alloca %struct.point326, align 4 + %3 = alloca %struct.point326, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point326* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point326* %2 to i8* + %9 = bitcast %struct.point326* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point326* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo327([2 x i64] %0) #0 { + %2 = alloca %struct.point327, align 4 + %3 = alloca %struct.point327, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point327* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point327* %2 to i8* + %9 = bitcast %struct.point327* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point327* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo328([2 x i64] %0) #0 { + %2 = alloca %struct.point328, align 4 + %3 = alloca %struct.point328, align 4 + %4 = bitcast %struct.point328* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point328* %2 to i8* + %6 = bitcast %struct.point328* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point328* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo329([2 x i64] %0) #0 { + %2 = alloca %struct.point329, align 4 + %3 = alloca %struct.point329, align 4 + %4 = bitcast %struct.point329* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point329* %2 to i8* + %6 = bitcast %struct.point329* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point329* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo330([2 x i64] %0) #0 { + %2 = alloca %struct.point330, align 4 + %3 = alloca %struct.point330, align 4 + %4 = bitcast %struct.point330* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point330* %2 to i8* + %6 = bitcast %struct.point330* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point330* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo331([2 x i64] %0) #0 { + %2 = alloca %struct.point331, align 4 + %3 = alloca %struct.point331, align 4 + %4 = bitcast %struct.point331* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point331* %2 to i8* + %6 = bitcast %struct.point331* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point331* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo332([2 x i64] %0) #0 { + %2 = alloca %struct.point332, align 4 + %3 = alloca %struct.point332, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point332* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point332* %2 to i8* + %9 = bitcast %struct.point332* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point332* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo333([2 x i64] %0) #0 { + %2 = alloca %struct.point333, align 4 + %3 = alloca %struct.point333, align 4 + %4 = bitcast %struct.point333* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point333* %2 to i8* + %6 = bitcast %struct.point333* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point333* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo334([2 x i64] %0) #0 { + %2 = alloca %struct.point334, align 4 + %3 = alloca %struct.point334, align 4 + %4 = bitcast %struct.point334* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point334* %2 to i8* + %6 = bitcast %struct.point334* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point334* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo335([2 x i64] %0) #0 { + %2 = alloca %struct.point335, align 4 + %3 = alloca %struct.point335, align 4 + %4 = bitcast %struct.point335* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point335* %2 to i8* + %6 = bitcast %struct.point335* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point335* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo336([2 x i64] %0) #0 { + %2 = alloca %struct.point336, align 4 + %3 = alloca %struct.point336, align 4 + %4 = bitcast %struct.point336* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point336* %2 to i8* + %6 = bitcast %struct.point336* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point336* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo337(i64 %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point337* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo338([2 x i64] %0) #0 { + %2 = alloca %struct.point338, align 4 + %3 = alloca %struct.point338, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point338* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point338* %2 to i8* + %9 = bitcast %struct.point338* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point338* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo339([2 x i64] %0) #0 { + %2 = alloca %struct.point339, align 4 + %3 = alloca %struct.point339, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point339* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point339* %2 to i8* + %9 = bitcast %struct.point339* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point339* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo340([2 x i64] %0) #0 { + %2 = alloca %struct.point340, align 4 + %3 = alloca %struct.point340, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point340* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point340* %2 to i8* + %9 = bitcast %struct.point340* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point340* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo341([2 x i64] %0) #0 { + %2 = alloca %struct.point341, align 4 + %3 = alloca %struct.point341, align 4 + %4 = bitcast %struct.point341* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point341* %2 to i8* + %6 = bitcast %struct.point341* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point341* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo342([2 x i64] %0) #0 { + %2 = alloca %struct.point342, align 4 + %3 = alloca %struct.point342, align 4 + %4 = bitcast %struct.point342* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point342* %2 to i8* + %6 = bitcast %struct.point342* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point342* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo343([2 x i64] %0) #0 { + %2 = alloca %struct.point343, align 4 + %3 = alloca %struct.point343, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point343* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point343* %2 to i8* + %9 = bitcast %struct.point343* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point343* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo344([2 x i64] %0) #0 { + %2 = alloca %struct.point344, align 4 + %3 = alloca %struct.point344, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point344* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point344* %2 to i8* + %9 = bitcast %struct.point344* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point344* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo345([2 x i64] %0) #0 { + %2 = alloca %struct.point345, align 4 + %3 = alloca %struct.point345, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point345* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point345* %2 to i8* + %9 = bitcast %struct.point345* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point345* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo346([2 x i64] %0) #0 { + %2 = alloca %struct.point346, align 4 + %3 = alloca %struct.point346, align 4 + %4 = bitcast %struct.point346* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point346* %2 to i8* + %6 = bitcast %struct.point346* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point346* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo347([2 x i64] %0) #0 { + %2 = alloca %struct.point347, align 4 + %3 = alloca %struct.point347, align 4 + %4 = bitcast %struct.point347* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point347* %2 to i8* + %6 = bitcast %struct.point347* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point347* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo348([2 x i64] %0) #0 { + %2 = alloca %struct.point348, align 4 + %3 = alloca %struct.point348, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point348* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point348* %2 to i8* + %9 = bitcast %struct.point348* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point348* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo349([2 x i64] %0) #0 { + %2 = alloca %struct.point349, align 4 + %3 = alloca %struct.point349, align 4 + %4 = bitcast %struct.point349* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point349* %2 to i8* + %6 = bitcast %struct.point349* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point349* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo350([2 x i64] %0) #0 { + %2 = alloca %struct.point350, align 4 + %3 = alloca %struct.point350, align 4 + %4 = bitcast %struct.point350* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point350* %2 to i8* + %6 = bitcast %struct.point350* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point350* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo351([2 x i64] %0) #0 { + %2 = alloca %struct.point351, align 4 + %3 = alloca %struct.point351, align 4 + %4 = bitcast %struct.point351* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point351* %2 to i8* + %6 = bitcast %struct.point351* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point351* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo352([2 x i64] %0) #0 { + %2 = alloca %struct.point352, align 4 + %3 = alloca %struct.point352, align 4 + %4 = bitcast %struct.point352* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point352* %2 to i8* + %6 = bitcast %struct.point352* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point352* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo353([2 x i64] %0) #0 { + %2 = alloca %struct.point353, align 4 + %3 = alloca %struct.point353, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point353* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point353* %2 to i8* + %9 = bitcast %struct.point353* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point353* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo354([2 x i64] %0) #0 { + %2 = alloca %struct.point354, align 4 + %3 = alloca %struct.point354, align 4 + %4 = bitcast %struct.point354* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point354* %2 to i8* + %6 = bitcast %struct.point354* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point354* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo355([2 x i64] %0) #0 { + %2 = alloca %struct.point355, align 4 + %3 = alloca %struct.point355, align 4 + %4 = bitcast %struct.point355* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point355* %2 to i8* + %6 = bitcast %struct.point355* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point355* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo356([2 x i64] %0) #0 { + %2 = alloca %struct.point356, align 4 + %3 = alloca %struct.point356, align 4 + %4 = bitcast %struct.point356* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point356* %2 to i8* + %6 = bitcast %struct.point356* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point356* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo357([2 x i64] %0) #0 { + %2 = alloca %struct.point357, align 4 + %3 = alloca %struct.point357, align 4 + %4 = bitcast %struct.point357* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point357* %2 to i8* + %6 = bitcast %struct.point357* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point357* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo358(i64 %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point358* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo359([2 x i64] %0) #0 { + %2 = alloca %struct.point359, align 4 + %3 = alloca %struct.point359, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point359* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point359* %2 to i8* + %9 = bitcast %struct.point359* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point359* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo360([2 x i64] %0) #0 { + %2 = alloca %struct.point360, align 4 + %3 = alloca %struct.point360, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point360* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point360* %2 to i8* + %9 = bitcast %struct.point360* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point360* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo361([2 x i64] %0) #0 { + %2 = alloca %struct.point361, align 4 + %3 = alloca %struct.point361, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point361* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point361* %2 to i8* + %9 = bitcast %struct.point361* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point361* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo362([2 x i64] %0) #0 { + %2 = alloca %struct.point362, align 4 + %3 = alloca %struct.point362, align 4 + %4 = bitcast %struct.point362* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point362* %2 to i8* + %6 = bitcast %struct.point362* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point362* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo363([2 x i64] %0) #0 { + %2 = alloca %struct.point363, align 4 + %3 = alloca %struct.point363, align 4 + %4 = bitcast %struct.point363* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point363* %2 to i8* + %6 = bitcast %struct.point363* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point363* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo364([2 x i64] %0) #0 { + %2 = alloca %struct.point364, align 4 + %3 = alloca %struct.point364, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point364* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point364* %2 to i8* + %9 = bitcast %struct.point364* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point364* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo365([2 x i64] %0) #0 { + %2 = alloca %struct.point365, align 4 + %3 = alloca %struct.point365, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point365* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point365* %2 to i8* + %9 = bitcast %struct.point365* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point365* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo366([2 x i64] %0) #0 { + %2 = alloca %struct.point366, align 4 + %3 = alloca %struct.point366, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point366* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point366* %2 to i8* + %9 = bitcast %struct.point366* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point366* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo367([2 x i64] %0) #0 { + %2 = alloca %struct.point367, align 4 + %3 = alloca %struct.point367, align 4 + %4 = bitcast %struct.point367* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point367* %2 to i8* + %6 = bitcast %struct.point367* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point367* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo368([2 x i64] %0) #0 { + %2 = alloca %struct.point368, align 4 + %3 = alloca %struct.point368, align 4 + %4 = bitcast %struct.point368* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point368* %2 to i8* + %6 = bitcast %struct.point368* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point368* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo369([2 x i64] %0) #0 { + %2 = alloca %struct.point369, align 4 + %3 = alloca %struct.point369, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point369* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point369* %2 to i8* + %9 = bitcast %struct.point369* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point369* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo370([2 x i64] %0) #0 { + %2 = alloca %struct.point370, align 4 + %3 = alloca %struct.point370, align 4 + %4 = bitcast %struct.point370* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point370* %2 to i8* + %6 = bitcast %struct.point370* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point370* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo371([2 x i64] %0) #0 { + %2 = alloca %struct.point371, align 4 + %3 = alloca %struct.point371, align 4 + %4 = bitcast %struct.point371* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point371* %2 to i8* + %6 = bitcast %struct.point371* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point371* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo372([2 x i64] %0) #0 { + %2 = alloca %struct.point372, align 4 + %3 = alloca %struct.point372, align 4 + %4 = bitcast %struct.point372* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point372* %2 to i8* + %6 = bitcast %struct.point372* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point372* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo373([2 x i64] %0) #0 { + %2 = alloca %struct.point373, align 4 + %3 = alloca %struct.point373, align 4 + %4 = bitcast %struct.point373* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point373* %2 to i8* + %6 = bitcast %struct.point373* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point373* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo374([2 x i64] %0) #0 { + %2 = alloca %struct.point374, align 4 + %3 = alloca %struct.point374, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point374* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point374* %2 to i8* + %9 = bitcast %struct.point374* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point374* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo375([2 x i64] %0) #0 { + %2 = alloca %struct.point375, align 4 + %3 = alloca %struct.point375, align 4 + %4 = bitcast %struct.point375* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point375* %2 to i8* + %6 = bitcast %struct.point375* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point375* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo376([2 x i64] %0) #0 { + %2 = alloca %struct.point376, align 4 + %3 = alloca %struct.point376, align 4 + %4 = bitcast %struct.point376* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point376* %2 to i8* + %6 = bitcast %struct.point376* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point376* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo377([2 x i64] %0) #0 { + %2 = alloca %struct.point377, align 4 + %3 = alloca %struct.point377, align 4 + %4 = bitcast %struct.point377* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point377* %2 to i8* + %6 = bitcast %struct.point377* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point377* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo378([2 x i64] %0) #0 { + %2 = alloca %struct.point378, align 4 + %3 = alloca %struct.point378, align 4 + %4 = bitcast %struct.point378* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point378* %2 to i8* + %6 = bitcast %struct.point378* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point378* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo379([2 x i64] %0) #0 { + %2 = alloca %struct.point379, align 4 + %3 = alloca %struct.point379, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point379* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point379* %2 to i8* + %9 = bitcast %struct.point379* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point379* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo380([2 x i64] %0) #0 { + %2 = alloca %struct.point380, align 4 + %3 = alloca %struct.point380, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point380* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point380* %2 to i8* + %9 = bitcast %struct.point380* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point380* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo381([2 x i64] %0) #0 { + %2 = alloca %struct.point381, align 4 + %3 = alloca %struct.point381, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point381* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point381* %2 to i8* + %9 = bitcast %struct.point381* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point381* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo382([2 x i64] %0) #0 { + %2 = alloca %struct.point382, align 4 + %3 = alloca %struct.point382, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point382* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point382* %2 to i8* + %9 = bitcast %struct.point382* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point382* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo383([2 x i64] %0) #0 { + %2 = alloca %struct.point383, align 4 + %3 = alloca %struct.point383, align 4 + %4 = bitcast %struct.point383* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point383* %2 to i8* + %6 = bitcast %struct.point383* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point383* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo384([2 x i64] %0) #0 { + %2 = alloca %struct.point384, align 4 + %3 = alloca %struct.point384, align 4 + %4 = bitcast %struct.point384* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point384* %2 to i8* + %6 = bitcast %struct.point384* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point384* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo385([2 x i64] %0) #0 { + %2 = alloca %struct.point385, align 4 + %3 = alloca %struct.point385, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point385* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point385* %2 to i8* + %9 = bitcast %struct.point385* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point385* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo386([2 x i64] %0) #0 { + %2 = alloca %struct.point386, align 4 + %3 = alloca %struct.point386, align 4 + %4 = bitcast %struct.point386* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point386* %2 to i8* + %6 = bitcast %struct.point386* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point386* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo387([2 x i64] %0) #0 { + %2 = alloca %struct.point387, align 4 + %3 = alloca %struct.point387, align 4 + %4 = bitcast %struct.point387* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point387* %2 to i8* + %6 = bitcast %struct.point387* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point387* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo388([2 x i64] %0) #0 { + %2 = alloca %struct.point388, align 4 + %3 = alloca %struct.point388, align 4 + %4 = bitcast %struct.point388* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point388* %2 to i8* + %6 = bitcast %struct.point388* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point388* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo389([2 x i64] %0) #0 { + %2 = alloca %struct.point389, align 4 + %3 = alloca %struct.point389, align 4 + %4 = bitcast %struct.point389* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point389* %2 to i8* + %6 = bitcast %struct.point389* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point389* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo390([2 x i64] %0) #0 { + %2 = alloca %struct.point390, align 4 + %3 = alloca %struct.point390, align 4 + %4 = bitcast %struct.point390* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point390* %2 to i8* + %6 = bitcast %struct.point390* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point390* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef %1) #0 { + %3 = bitcast %struct.point391* %0 to i8* + %4 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef %1) #0 { + %3 = bitcast %struct.point392* %0 to i8* + %4 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef %1) #0 { + %3 = bitcast %struct.point393* %0 to i8* + %4 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef %1) #0 { + %3 = bitcast %struct.point394* %0 to i8* + %4 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo395([2 x i64] %0) #0 { + %2 = alloca %struct.point395, align 4 + %3 = alloca %struct.point395, align 4 + %4 = bitcast %struct.point395* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point395* %2 to i8* + %6 = bitcast %struct.point395* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point395* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef %1) #0 { + %3 = bitcast %struct.point396* %0 to i8* + %4 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef %1) #0 { + %3 = bitcast %struct.point397* %0 to i8* + %4 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef %1) #0 { + %3 = bitcast %struct.point398* %0 to i8* + %4 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef %1) #0 { + %3 = bitcast %struct.point399* %0 to i8* + %4 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo400([2 x i64] %0) #0 { + %2 = alloca %struct.point400, align 4 + %3 = alloca %struct.point400, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point400* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point400* %2 to i8* + %9 = bitcast %struct.point400* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point400* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo401([2 x i64] %0) #0 { + %2 = alloca %struct.point401, align 4 + %3 = alloca %struct.point401, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point401* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point401* %2 to i8* + %9 = bitcast %struct.point401* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point401* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo402([2 x i64] %0) #0 { + %2 = alloca %struct.point402, align 4 + %3 = alloca %struct.point402, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point402* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point402* %2 to i8* + %9 = bitcast %struct.point402* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point402* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo403([2 x i64] %0) #0 { + %2 = alloca %struct.point403, align 4 + %3 = alloca %struct.point403, align 4 + %4 = bitcast %struct.point403* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point403* %2 to i8* + %6 = bitcast %struct.point403* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point403* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo404([2 x i64] %0) #0 { + %2 = alloca %struct.point404, align 4 + %3 = alloca %struct.point404, align 4 + %4 = bitcast %struct.point404* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point404* %2 to i8* + %6 = bitcast %struct.point404* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point404* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo405([2 x i64] %0) #0 { + %2 = alloca %struct.point405, align 4 + %3 = alloca %struct.point405, align 4 + %4 = bitcast %struct.point405* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point405* %2 to i8* + %6 = bitcast %struct.point405* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point405* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo406([2 x i64] %0) #0 { + %2 = alloca %struct.point406, align 4 + %3 = alloca %struct.point406, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point406* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point406* %2 to i8* + %9 = bitcast %struct.point406* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point406* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo407([2 x i64] %0) #0 { + %2 = alloca %struct.point407, align 4 + %3 = alloca %struct.point407, align 4 + %4 = bitcast %struct.point407* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point407* %2 to i8* + %6 = bitcast %struct.point407* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point407* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo408([2 x i64] %0) #0 { + %2 = alloca %struct.point408, align 4 + %3 = alloca %struct.point408, align 4 + %4 = bitcast %struct.point408* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point408* %2 to i8* + %6 = bitcast %struct.point408* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point408* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo409([2 x i64] %0) #0 { + %2 = alloca %struct.point409, align 4 + %3 = alloca %struct.point409, align 4 + %4 = bitcast %struct.point409* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point409* %2 to i8* + %6 = bitcast %struct.point409* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point409* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo410([2 x i64] %0) #0 { + %2 = alloca %struct.point410, align 4 + %3 = alloca %struct.point410, align 4 + %4 = bitcast %struct.point410* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point410* %2 to i8* + %6 = bitcast %struct.point410* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point410* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo411([2 x i64] %0) #0 { + %2 = alloca %struct.point411, align 4 + %3 = alloca %struct.point411, align 4 + %4 = bitcast %struct.point411* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point411* %2 to i8* + %6 = bitcast %struct.point411* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point411* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef %1) #0 { + %3 = bitcast %struct.point412* %0 to i8* + %4 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef %1) #0 { + %3 = bitcast %struct.point413* %0 to i8* + %4 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef %1) #0 { + %3 = bitcast %struct.point414* %0 to i8* + %4 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef %1) #0 { + %3 = bitcast %struct.point415* %0 to i8* + %4 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo416([2 x i64] %0) #0 { + %2 = alloca %struct.point416, align 4 + %3 = alloca %struct.point416, align 4 + %4 = bitcast %struct.point416* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point416* %2 to i8* + %6 = bitcast %struct.point416* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point416* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef %1) #0 { + %3 = bitcast %struct.point417* %0 to i8* + %4 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef %1) #0 { + %3 = bitcast %struct.point418* %0 to i8* + %4 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef %1) #0 { + %3 = bitcast %struct.point419* %0 to i8* + %4 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef %1) #0 { + %3 = bitcast %struct.point420* %0 to i8* + %4 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo421([2 x i64] %0) #0 { + %2 = alloca %struct.point421, align 4 + %3 = alloca %struct.point421, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point421* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point421* %2 to i8* + %9 = bitcast %struct.point421* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point421* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo422([2 x i64] %0) #0 { + %2 = alloca %struct.point422, align 4 + %3 = alloca %struct.point422, align 4 + %4 = bitcast %struct.point422* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point422* %2 to i8* + %6 = bitcast %struct.point422* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point422* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo423([2 x i64] %0) #0 { + %2 = alloca %struct.point423, align 4 + %3 = alloca %struct.point423, align 4 + %4 = bitcast %struct.point423* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point423* %2 to i8* + %6 = bitcast %struct.point423* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point423* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo424([2 x i64] %0) #0 { + %2 = alloca %struct.point424, align 4 + %3 = alloca %struct.point424, align 4 + %4 = bitcast %struct.point424* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point424* %2 to i8* + %6 = bitcast %struct.point424* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point424* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef %1) #0 { + %3 = bitcast %struct.point425* %0 to i8* + %4 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef %1) #0 { + %3 = bitcast %struct.point426* %0 to i8* + %4 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo427([2 x i64] %0) #0 { + %2 = alloca %struct.point427, align 4 + %3 = alloca %struct.point427, align 4 + %4 = bitcast %struct.point427* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point427* %2 to i8* + %6 = bitcast %struct.point427* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point427* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo428([2 x i64] %0) #0 { + %2 = alloca %struct.point428, align 4 + %3 = alloca %struct.point428, align 4 + %4 = bitcast %struct.point428* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point428* %2 to i8* + %6 = bitcast %struct.point428* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point428* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo429([2 x i64] %0) #0 { + %2 = alloca %struct.point429, align 4 + %3 = alloca %struct.point429, align 4 + %4 = bitcast %struct.point429* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point429* %2 to i8* + %6 = bitcast %struct.point429* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point429* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef %1) #0 { + %3 = bitcast %struct.point430* %0 to i8* + %4 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef %1) #0 { + %3 = bitcast %struct.point431* %0 to i8* + %4 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo432([2 x i64] %0) #0 { + %2 = alloca %struct.point432, align 4 + %3 = alloca %struct.point432, align 4 + %4 = bitcast %struct.point432* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point432* %2 to i8* + %6 = bitcast %struct.point432* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point432* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef %1) #0 { + %3 = bitcast %struct.point433* %0 to i8* + %4 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef %1) #0 { + %3 = bitcast %struct.point434* %0 to i8* + %4 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef %1) #0 { + %3 = bitcast %struct.point435* %0 to i8* + %4 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef %1) #0 { + %3 = bitcast %struct.point436* %0 to i8* + %4 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo437([2 x i64] %0) #0 { + %2 = alloca %struct.point437, align 4 + %3 = alloca %struct.point437, align 4 + %4 = bitcast %struct.point437* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point437* %2 to i8* + %6 = bitcast %struct.point437* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point437* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef %1) #0 { + %3 = bitcast %struct.point438* %0 to i8* + %4 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef %1) #0 { + %3 = bitcast %struct.point439* %0 to i8* + %4 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef %1) #0 { + %3 = bitcast %struct.point440* %0 to i8* + %4 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef %1) #0 { + %3 = bitcast %struct.point441* %0 to i8* + %4 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo442([2 x i64] %0) #0 { + %2 = alloca %struct.point442, align 4 + %3 = alloca %struct.point442, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point442* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point442* %2 to i8* + %9 = bitcast %struct.point442* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point442* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo443([2 x i64] %0) #0 { + %2 = alloca %struct.point443, align 4 + %3 = alloca %struct.point443, align 4 + %4 = bitcast %struct.point443* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point443* %2 to i8* + %6 = bitcast %struct.point443* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point443* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo444([2 x i64] %0) #0 { + %2 = alloca %struct.point444, align 4 + %3 = alloca %struct.point444, align 4 + %4 = bitcast %struct.point444* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point444* %2 to i8* + %6 = bitcast %struct.point444* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point444* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo445([2 x i64] %0) #0 { + %2 = alloca %struct.point445, align 4 + %3 = alloca %struct.point445, align 4 + %4 = bitcast %struct.point445* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point445* %2 to i8* + %6 = bitcast %struct.point445* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point445* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef %1) #0 { + %3 = bitcast %struct.point446* %0 to i8* + %4 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef %1) #0 { + %3 = bitcast %struct.point447* %0 to i8* + %4 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo448([2 x i64] %0) #0 { + %2 = alloca %struct.point448, align 4 + %3 = alloca %struct.point448, align 4 + %4 = bitcast %struct.point448* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point448* %2 to i8* + %6 = bitcast %struct.point448* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point448* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo449([2 x i64] %0) #0 { + %2 = alloca %struct.point449, align 4 + %3 = alloca %struct.point449, align 4 + %4 = bitcast %struct.point449* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point449* %2 to i8* + %6 = bitcast %struct.point449* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point449* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo450([2 x i64] %0) #0 { + %2 = alloca %struct.point450, align 4 + %3 = alloca %struct.point450, align 4 + %4 = bitcast %struct.point450* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point450* %2 to i8* + %6 = bitcast %struct.point450* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point450* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef %1) #0 { + %3 = bitcast %struct.point451* %0 to i8* + %4 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef %1) #0 { + %3 = bitcast %struct.point452* %0 to i8* + %4 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo453([2 x i64] %0) #0 { + %2 = alloca %struct.point453, align 4 + %3 = alloca %struct.point453, align 4 + %4 = bitcast %struct.point453* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point453* %2 to i8* + %6 = bitcast %struct.point453* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point453* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef %1) #0 { + %3 = bitcast %struct.point454* %0 to i8* + %4 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef %1) #0 { + %3 = bitcast %struct.point455* %0 to i8* + %4 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef %1) #0 { + %3 = bitcast %struct.point456* %0 to i8* + %4 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef %1) #0 { + %3 = bitcast %struct.point457* %0 to i8* + %4 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo458([2 x i64] %0) #0 { + %2 = alloca %struct.point458, align 4 + %3 = alloca %struct.point458, align 4 + %4 = bitcast %struct.point458* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point458* %2 to i8* + %6 = bitcast %struct.point458* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point458* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef %1) #0 { + %3 = bitcast %struct.point459* %0 to i8* + %4 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef %1) #0 { + %3 = bitcast %struct.point460* %0 to i8* + %4 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef %1) #0 { + %3 = bitcast %struct.point461* %0 to i8* + %4 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef %1) #0 { + %3 = bitcast %struct.point462* %0 to i8* + %4 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo463([2 x i64] %0) #0 { + %2 = alloca %struct.point463, align 4 + %3 = alloca %struct.point463, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point463* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point463* %2 to i8* + %9 = bitcast %struct.point463* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point463* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo464([2 x i64] %0) #0 { + %2 = alloca %struct.point464, align 4 + %3 = alloca %struct.point464, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point464* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point464* %2 to i8* + %9 = bitcast %struct.point464* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point464* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo465([2 x i64] %0) #0 { + %2 = alloca %struct.point465, align 4 + %3 = alloca %struct.point465, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point465* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point465* %2 to i8* + %9 = bitcast %struct.point465* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point465* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo466([2 x i64] %0) #0 { + %2 = alloca %struct.point466, align 4 + %3 = alloca %struct.point466, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point466* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point466* %2 to i8* + %9 = bitcast %struct.point466* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point466* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo467([2 x i64] %0) #0 { + %2 = alloca %struct.point467, align 4 + %3 = alloca %struct.point467, align 4 + %4 = bitcast %struct.point467* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point467* %2 to i8* + %6 = bitcast %struct.point467* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point467* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo468([2 x i64] %0) #0 { + %2 = alloca %struct.point468, align 4 + %3 = alloca %struct.point468, align 4 + %4 = bitcast %struct.point468* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point468* %2 to i8* + %6 = bitcast %struct.point468* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point468* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo469([2 x i64] %0) #0 { + %2 = alloca %struct.point469, align 4 + %3 = alloca %struct.point469, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point469* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point469* %2 to i8* + %9 = bitcast %struct.point469* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point469* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo470([2 x i64] %0) #0 { + %2 = alloca %struct.point470, align 4 + %3 = alloca %struct.point470, align 4 + %4 = bitcast %struct.point470* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point470* %2 to i8* + %6 = bitcast %struct.point470* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point470* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo471([2 x i64] %0) #0 { + %2 = alloca %struct.point471, align 4 + %3 = alloca %struct.point471, align 4 + %4 = bitcast %struct.point471* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point471* %2 to i8* + %6 = bitcast %struct.point471* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point471* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo472([2 x i64] %0) #0 { + %2 = alloca %struct.point472, align 4 + %3 = alloca %struct.point472, align 4 + %4 = bitcast %struct.point472* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point472* %2 to i8* + %6 = bitcast %struct.point472* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point472* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo473([2 x i64] %0) #0 { + %2 = alloca %struct.point473, align 4 + %3 = alloca %struct.point473, align 4 + %4 = bitcast %struct.point473* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point473* %2 to i8* + %6 = bitcast %struct.point473* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point473* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo474([2 x i64] %0) #0 { + %2 = alloca %struct.point474, align 4 + %3 = alloca %struct.point474, align 4 + %4 = bitcast %struct.point474* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point474* %2 to i8* + %6 = bitcast %struct.point474* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point474* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef %1) #0 { + %3 = bitcast %struct.point475* %0 to i8* + %4 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef %1) #0 { + %3 = bitcast %struct.point476* %0 to i8* + %4 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef %1) #0 { + %3 = bitcast %struct.point477* %0 to i8* + %4 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef %1) #0 { + %3 = bitcast %struct.point478* %0 to i8* + %4 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo479([2 x i64] %0) #0 { + %2 = alloca %struct.point479, align 4 + %3 = alloca %struct.point479, align 4 + %4 = bitcast %struct.point479* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point479* %2 to i8* + %6 = bitcast %struct.point479* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point479* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef %1) #0 { + %3 = bitcast %struct.point480* %0 to i8* + %4 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef %1) #0 { + %3 = bitcast %struct.point481* %0 to i8* + %4 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef %1) #0 { + %3 = bitcast %struct.point482* %0 to i8* + %4 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef %1) #0 { + %3 = bitcast %struct.point483* %0 to i8* + %4 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo484([2 x i64] %0) #0 { + %2 = alloca %struct.point484, align 4 + %3 = alloca %struct.point484, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point484* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point484* %2 to i8* + %9 = bitcast %struct.point484* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point484* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo485([2 x i64] %0) #0 { + %2 = alloca %struct.point485, align 4 + %3 = alloca %struct.point485, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point485* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point485* %2 to i8* + %9 = bitcast %struct.point485* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point485* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo486([2 x i64] %0) #0 { + %2 = alloca %struct.point486, align 4 + %3 = alloca %struct.point486, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point486* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point486* %2 to i8* + %9 = bitcast %struct.point486* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point486* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo487([2 x i64] %0) #0 { + %2 = alloca %struct.point487, align 4 + %3 = alloca %struct.point487, align 4 + %4 = bitcast %struct.point487* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point487* %2 to i8* + %6 = bitcast %struct.point487* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point487* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo488([2 x i64] %0) #0 { + %2 = alloca %struct.point488, align 4 + %3 = alloca %struct.point488, align 4 + %4 = bitcast %struct.point488* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point488* %2 to i8* + %6 = bitcast %struct.point488* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point488* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo489([2 x i64] %0) #0 { + %2 = alloca %struct.point489, align 4 + %3 = alloca %struct.point489, align 4 + %4 = bitcast %struct.point489* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point489* %2 to i8* + %6 = bitcast %struct.point489* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point489* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo490([2 x i64] %0) #0 { + %2 = alloca %struct.point490, align 4 + %3 = alloca %struct.point490, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point490* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point490* %2 to i8* + %9 = bitcast %struct.point490* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point490* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo491([2 x i64] %0) #0 { + %2 = alloca %struct.point491, align 4 + %3 = alloca %struct.point491, align 4 + %4 = bitcast %struct.point491* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point491* %2 to i8* + %6 = bitcast %struct.point491* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point491* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo492([2 x i64] %0) #0 { + %2 = alloca %struct.point492, align 4 + %3 = alloca %struct.point492, align 4 + %4 = bitcast %struct.point492* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point492* %2 to i8* + %6 = bitcast %struct.point492* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point492* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo493([2 x i64] %0) #0 { + %2 = alloca %struct.point493, align 4 + %3 = alloca %struct.point493, align 4 + %4 = bitcast %struct.point493* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point493* %2 to i8* + %6 = bitcast %struct.point493* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point493* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo494([2 x i64] %0) #0 { + %2 = alloca %struct.point494, align 4 + %3 = alloca %struct.point494, align 4 + %4 = bitcast %struct.point494* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point494* %2 to i8* + %6 = bitcast %struct.point494* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point494* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo495([2 x i64] %0) #0 { + %2 = alloca %struct.point495, align 4 + %3 = alloca %struct.point495, align 4 + %4 = bitcast %struct.point495* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point495* %2 to i8* + %6 = bitcast %struct.point495* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point495* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef %1) #0 { + %3 = bitcast %struct.point496* %0 to i8* + %4 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef %1) #0 { + %3 = bitcast %struct.point497* %0 to i8* + %4 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef %1) #0 { + %3 = bitcast %struct.point498* %0 to i8* + %4 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef %1) #0 { + %3 = bitcast %struct.point499* %0 to i8* + %4 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo500([2 x i64] %0) #0 { + %2 = alloca %struct.point500, align 4 + %3 = alloca %struct.point500, align 4 + %4 = bitcast %struct.point500* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point500* %2 to i8* + %6 = bitcast %struct.point500* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point500* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef %1) #0 { + %3 = bitcast %struct.point501* %0 to i8* + %4 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef %1) #0 { + %3 = bitcast %struct.point502* %0 to i8* + %4 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef %1) #0 { + %3 = bitcast %struct.point503* %0 to i8* + %4 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef %1) #0 { + %3 = bitcast %struct.point504* %0 to i8* + %4 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo505([2 x i64] %0) #0 { + %2 = alloca %struct.point505, align 4 + %3 = alloca %struct.point505, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point505* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point505* %2 to i8* + %9 = bitcast %struct.point505* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point505* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo506([2 x i64] %0) #0 { + %2 = alloca %struct.point506, align 4 + %3 = alloca %struct.point506, align 4 + %4 = bitcast %struct.point506* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point506* %2 to i8* + %6 = bitcast %struct.point506* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point506* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo507([2 x i64] %0) #0 { + %2 = alloca %struct.point507, align 4 + %3 = alloca %struct.point507, align 4 + %4 = bitcast %struct.point507* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point507* %2 to i8* + %6 = bitcast %struct.point507* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point507* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo508([2 x i64] %0) #0 { + %2 = alloca %struct.point508, align 4 + %3 = alloca %struct.point508, align 4 + %4 = bitcast %struct.point508* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point508* %2 to i8* + %6 = bitcast %struct.point508* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point508* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef %1) #0 { + %3 = bitcast %struct.point509* %0 to i8* + %4 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef %1) #0 { + %3 = bitcast %struct.point510* %0 to i8* + %4 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo511([2 x i64] %0) #0 { + %2 = alloca %struct.point511, align 4 + %3 = alloca %struct.point511, align 4 + %4 = bitcast %struct.point511* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point511* %2 to i8* + %6 = bitcast %struct.point511* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point511* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo512([2 x i64] %0) #0 { + %2 = alloca %struct.point512, align 4 + %3 = alloca %struct.point512, align 4 + %4 = bitcast %struct.point512* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point512* %2 to i8* + %6 = bitcast %struct.point512* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point512* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo513([2 x i64] %0) #0 { + %2 = alloca %struct.point513, align 4 + %3 = alloca %struct.point513, align 4 + %4 = bitcast %struct.point513* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point513* %2 to i8* + %6 = bitcast %struct.point513* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point513* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef %1) #0 { + %3 = bitcast %struct.point514* %0 to i8* + %4 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef %1) #0 { + %3 = bitcast %struct.point515* %0 to i8* + %4 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo516([2 x i64] %0) #0 { + %2 = alloca %struct.point516, align 4 + %3 = alloca %struct.point516, align 4 + %4 = bitcast %struct.point516* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point516* %2 to i8* + %6 = bitcast %struct.point516* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point516* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef %1) #0 { + %3 = bitcast %struct.point517* %0 to i8* + %4 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef %1) #0 { + %3 = bitcast %struct.point518* %0 to i8* + %4 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef %1) #0 { + %3 = bitcast %struct.point519* %0 to i8* + %4 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef %1) #0 { + %3 = bitcast %struct.point520* %0 to i8* + %4 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo521([2 x i64] %0) #0 { + %2 = alloca %struct.point521, align 4 + %3 = alloca %struct.point521, align 4 + %4 = bitcast %struct.point521* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point521* %2 to i8* + %6 = bitcast %struct.point521* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point521* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef %1) #0 { + %3 = bitcast %struct.point522* %0 to i8* + %4 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef %1) #0 { + %3 = bitcast %struct.point523* %0 to i8* + %4 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef %1) #0 { + %3 = bitcast %struct.point524* %0 to i8* + %4 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef %1) #0 { + %3 = bitcast %struct.point525* %0 to i8* + %4 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo526([2 x i64] %0) #0 { + %2 = alloca %struct.point526, align 4 + %3 = alloca %struct.point526, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point526* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point526* %2 to i8* + %9 = bitcast %struct.point526* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point526* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo527([2 x i64] %0) #0 { + %2 = alloca %struct.point527, align 4 + %3 = alloca %struct.point527, align 4 + %4 = bitcast %struct.point527* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point527* %2 to i8* + %6 = bitcast %struct.point527* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point527* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo528([2 x i64] %0) #0 { + %2 = alloca %struct.point528, align 4 + %3 = alloca %struct.point528, align 4 + %4 = bitcast %struct.point528* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point528* %2 to i8* + %6 = bitcast %struct.point528* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point528* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo529([2 x i64] %0) #0 { + %2 = alloca %struct.point529, align 4 + %3 = alloca %struct.point529, align 4 + %4 = bitcast %struct.point529* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point529* %2 to i8* + %6 = bitcast %struct.point529* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point529* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef %1) #0 { + %3 = bitcast %struct.point530* %0 to i8* + %4 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef %1) #0 { + %3 = bitcast %struct.point531* %0 to i8* + %4 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo532([2 x i64] %0) #0 { + %2 = alloca %struct.point532, align 4 + %3 = alloca %struct.point532, align 4 + %4 = bitcast %struct.point532* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point532* %2 to i8* + %6 = bitcast %struct.point532* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point532* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo533([2 x i64] %0) #0 { + %2 = alloca %struct.point533, align 4 + %3 = alloca %struct.point533, align 4 + %4 = bitcast %struct.point533* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point533* %2 to i8* + %6 = bitcast %struct.point533* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point533* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo534([2 x i64] %0) #0 { + %2 = alloca %struct.point534, align 4 + %3 = alloca %struct.point534, align 4 + %4 = bitcast %struct.point534* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point534* %2 to i8* + %6 = bitcast %struct.point534* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point534* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef %1) #0 { + %3 = bitcast %struct.point535* %0 to i8* + %4 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef %1) #0 { + %3 = bitcast %struct.point536* %0 to i8* + %4 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo537([2 x i64] %0) #0 { + %2 = alloca %struct.point537, align 4 + %3 = alloca %struct.point537, align 4 + %4 = bitcast %struct.point537* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point537* %2 to i8* + %6 = bitcast %struct.point537* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point537* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef %1) #0 { + %3 = bitcast %struct.point538* %0 to i8* + %4 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef %1) #0 { + %3 = bitcast %struct.point539* %0 to i8* + %4 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef %1) #0 { + %3 = bitcast %struct.point540* %0 to i8* + %4 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef %1) #0 { + %3 = bitcast %struct.point541* %0 to i8* + %4 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo542([2 x i64] %0) #0 { + %2 = alloca %struct.point542, align 4 + %3 = alloca %struct.point542, align 4 + %4 = bitcast %struct.point542* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point542* %2 to i8* + %6 = bitcast %struct.point542* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point542* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef %1) #0 { + %3 = bitcast %struct.point543* %0 to i8* + %4 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef %1) #0 { + %3 = bitcast %struct.point544* %0 to i8* + %4 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef %1) #0 { + %3 = bitcast %struct.point545* %0 to i8* + %4 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef %1) #0 { + %3 = bitcast %struct.point546* %0 to i8* + %4 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo547(i64 %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point547* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo548(i64 %0) #0 { + %2 = alloca %struct.point548, align 4 + %3 = alloca %struct.point548, align 4 + %4 = bitcast %struct.point548* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point548* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo549(i64 %0) #0 { + %2 = alloca %struct.point549, align 4 + %3 = alloca %struct.point549, align 4 + %4 = bitcast %struct.point549* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point549* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo550([2 x i64] %0) #0 { + %2 = alloca %struct.point550, align 4 + %3 = alloca %struct.point550, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point550* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point550* %2 to i8* + %9 = bitcast %struct.point550* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point550* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo551([2 x i64] %0) #0 { + %2 = alloca %struct.point551, align 4 + %3 = alloca %struct.point551, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point551* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point551* %2 to i8* + %9 = bitcast %struct.point551* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point551* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo552([2 x i64] %0) #0 { + %2 = alloca %struct.point552, align 4 + %3 = alloca %struct.point552, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point552* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point552* %2 to i8* + %9 = bitcast %struct.point552* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point552* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo553(i64 %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point553* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo554([2 x i64] %0) #0 { + %2 = alloca %struct.point554, align 4 + %3 = alloca %struct.point554, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point554* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point554* %2 to i8* + %9 = bitcast %struct.point554* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point554* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo555([2 x i64] %0) #0 { + %2 = alloca %struct.point555, align 4 + %3 = alloca %struct.point555, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point555* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point555* %2 to i8* + %9 = bitcast %struct.point555* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point555* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo556([2 x i64] %0) #0 { + %2 = alloca %struct.point556, align 4 + %3 = alloca %struct.point556, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point556* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point556* %2 to i8* + %9 = bitcast %struct.point556* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point556* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo557([2 x i64] %0) #0 { + %2 = alloca %struct.point557, align 4 + %3 = alloca %struct.point557, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point557* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point557* %2 to i8* + %9 = bitcast %struct.point557* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point557* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo558([2 x i64] %0) #0 { + %2 = alloca %struct.point558, align 4 + %3 = alloca %struct.point558, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point558* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point558* %2 to i8* + %9 = bitcast %struct.point558* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point558* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo559([2 x i64] %0) #0 { + %2 = alloca %struct.point559, align 4 + %3 = alloca %struct.point559, align 4 + %4 = bitcast %struct.point559* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point559* %2 to i8* + %6 = bitcast %struct.point559* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point559* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo560([2 x i64] %0) #0 { + %2 = alloca %struct.point560, align 4 + %3 = alloca %struct.point560, align 4 + %4 = bitcast %struct.point560* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point560* %2 to i8* + %6 = bitcast %struct.point560* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point560* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo561([2 x i64] %0) #0 { + %2 = alloca %struct.point561, align 4 + %3 = alloca %struct.point561, align 4 + %4 = bitcast %struct.point561* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point561* %2 to i8* + %6 = bitcast %struct.point561* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point561* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo562([2 x i64] %0) #0 { + %2 = alloca %struct.point562, align 4 + %3 = alloca %struct.point562, align 4 + %4 = bitcast %struct.point562* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point562* %2 to i8* + %6 = bitcast %struct.point562* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point562* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo563([2 x i64] %0) #0 { + %2 = alloca %struct.point563, align 4 + %3 = alloca %struct.point563, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point563* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point563* %2 to i8* + %9 = bitcast %struct.point563* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point563* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo564([2 x i64] %0) #0 { + %2 = alloca %struct.point564, align 4 + %3 = alloca %struct.point564, align 4 + %4 = bitcast %struct.point564* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point564* %2 to i8* + %6 = bitcast %struct.point564* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point564* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo565([2 x i64] %0) #0 { + %2 = alloca %struct.point565, align 4 + %3 = alloca %struct.point565, align 4 + %4 = bitcast %struct.point565* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point565* %2 to i8* + %6 = bitcast %struct.point565* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point565* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo566([2 x i64] %0) #0 { + %2 = alloca %struct.point566, align 4 + %3 = alloca %struct.point566, align 4 + %4 = bitcast %struct.point566* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point566* %2 to i8* + %6 = bitcast %struct.point566* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point566* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo567([2 x i64] %0) #0 { + %2 = alloca %struct.point567, align 4 + %3 = alloca %struct.point567, align 4 + %4 = bitcast %struct.point567* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point567* %2 to i8* + %6 = bitcast %struct.point567* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point567* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo568(i64 %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point568* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo569([2 x i64] %0) #0 { + %2 = alloca %struct.point569, align 4 + %3 = alloca %struct.point569, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point569* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point569* %2 to i8* + %9 = bitcast %struct.point569* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point569* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo570([2 x i64] %0) #0 { + %2 = alloca %struct.point570, align 4 + %3 = alloca %struct.point570, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point570* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point570* %2 to i8* + %9 = bitcast %struct.point570* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point570* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo571([2 x i64] %0) #0 { + %2 = alloca %struct.point571, align 4 + %3 = alloca %struct.point571, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point571* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point571* %2 to i8* + %9 = bitcast %struct.point571* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point571* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo572([2 x i64] %0) #0 { + %2 = alloca %struct.point572, align 4 + %3 = alloca %struct.point572, align 4 + %4 = bitcast %struct.point572* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point572* %2 to i8* + %6 = bitcast %struct.point572* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point572* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo573([2 x i64] %0) #0 { + %2 = alloca %struct.point573, align 4 + %3 = alloca %struct.point573, align 4 + %4 = bitcast %struct.point573* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point573* %2 to i8* + %6 = bitcast %struct.point573* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point573* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo574([2 x i64] %0) #0 { + %2 = alloca %struct.point574, align 4 + %3 = alloca %struct.point574, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point574* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point574* %2 to i8* + %9 = bitcast %struct.point574* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point574* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo575([2 x i64] %0) #0 { + %2 = alloca %struct.point575, align 4 + %3 = alloca %struct.point575, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point575* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point575* %2 to i8* + %9 = bitcast %struct.point575* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point575* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo576([2 x i64] %0) #0 { + %2 = alloca %struct.point576, align 4 + %3 = alloca %struct.point576, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point576* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point576* %2 to i8* + %9 = bitcast %struct.point576* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point576* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo577([2 x i64] %0) #0 { + %2 = alloca %struct.point577, align 4 + %3 = alloca %struct.point577, align 4 + %4 = bitcast %struct.point577* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point577* %2 to i8* + %6 = bitcast %struct.point577* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point577* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo578([2 x i64] %0) #0 { + %2 = alloca %struct.point578, align 4 + %3 = alloca %struct.point578, align 4 + %4 = bitcast %struct.point578* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point578* %2 to i8* + %6 = bitcast %struct.point578* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point578* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo579([2 x i64] %0) #0 { + %2 = alloca %struct.point579, align 4 + %3 = alloca %struct.point579, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point579* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point579* %2 to i8* + %9 = bitcast %struct.point579* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point579* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo580([2 x i64] %0) #0 { + %2 = alloca %struct.point580, align 4 + %3 = alloca %struct.point580, align 4 + %4 = bitcast %struct.point580* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point580* %2 to i8* + %6 = bitcast %struct.point580* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point580* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo581([2 x i64] %0) #0 { + %2 = alloca %struct.point581, align 4 + %3 = alloca %struct.point581, align 4 + %4 = bitcast %struct.point581* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point581* %2 to i8* + %6 = bitcast %struct.point581* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point581* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo582([2 x i64] %0) #0 { + %2 = alloca %struct.point582, align 4 + %3 = alloca %struct.point582, align 4 + %4 = bitcast %struct.point582* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point582* %2 to i8* + %6 = bitcast %struct.point582* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point582* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo583([2 x i64] %0) #0 { + %2 = alloca %struct.point583, align 4 + %3 = alloca %struct.point583, align 4 + %4 = bitcast %struct.point583* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point583* %2 to i8* + %6 = bitcast %struct.point583* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point583* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo584([2 x i64] %0) #0 { + %2 = alloca %struct.point584, align 4 + %3 = alloca %struct.point584, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point584* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point584* %2 to i8* + %9 = bitcast %struct.point584* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point584* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo585([2 x i64] %0) #0 { + %2 = alloca %struct.point585, align 4 + %3 = alloca %struct.point585, align 4 + %4 = bitcast %struct.point585* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point585* %2 to i8* + %6 = bitcast %struct.point585* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point585* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo586([2 x i64] %0) #0 { + %2 = alloca %struct.point586, align 4 + %3 = alloca %struct.point586, align 4 + %4 = bitcast %struct.point586* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point586* %2 to i8* + %6 = bitcast %struct.point586* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point586* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo587([2 x i64] %0) #0 { + %2 = alloca %struct.point587, align 4 + %3 = alloca %struct.point587, align 4 + %4 = bitcast %struct.point587* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point587* %2 to i8* + %6 = bitcast %struct.point587* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point587* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo588([2 x i64] %0) #0 { + %2 = alloca %struct.point588, align 4 + %3 = alloca %struct.point588, align 4 + %4 = bitcast %struct.point588* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point588* %2 to i8* + %6 = bitcast %struct.point588* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point588* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo589([2 x i64] %0) #0 { + %2 = alloca %struct.point589, align 4 + %3 = alloca %struct.point589, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point589* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point589* %2 to i8* + %9 = bitcast %struct.point589* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point589* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo590([2 x i64] %0) #0 { + %2 = alloca %struct.point590, align 4 + %3 = alloca %struct.point590, align 4 + %4 = bitcast %struct.point590* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point590* %2 to i8* + %6 = bitcast %struct.point590* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point590* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo591([2 x i64] %0) #0 { + %2 = alloca %struct.point591, align 4 + %3 = alloca %struct.point591, align 4 + %4 = bitcast %struct.point591* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point591* %2 to i8* + %6 = bitcast %struct.point591* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point591* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo592([2 x i64] %0) #0 { + %2 = alloca %struct.point592, align 4 + %3 = alloca %struct.point592, align 4 + %4 = bitcast %struct.point592* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point592* %2 to i8* + %6 = bitcast %struct.point592* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point592* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef %1) #0 { + %3 = bitcast %struct.point593* %0 to i8* + %4 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef %1) #0 { + %3 = bitcast %struct.point594* %0 to i8* + %4 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo595([2 x i64] %0) #0 { + %2 = alloca %struct.point595, align 4 + %3 = alloca %struct.point595, align 4 + %4 = bitcast %struct.point595* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point595* %2 to i8* + %6 = bitcast %struct.point595* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point595* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo596([2 x i64] %0) #0 { + %2 = alloca %struct.point596, align 4 + %3 = alloca %struct.point596, align 4 + %4 = bitcast %struct.point596* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point596* %2 to i8* + %6 = bitcast %struct.point596* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point596* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo597([2 x i64] %0) #0 { + %2 = alloca %struct.point597, align 4 + %3 = alloca %struct.point597, align 4 + %4 = bitcast %struct.point597* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point597* %2 to i8* + %6 = bitcast %struct.point597* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point597* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef %1) #0 { + %3 = bitcast %struct.point598* %0 to i8* + %4 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef %1) #0 { + %3 = bitcast %struct.point599* %0 to i8* + %4 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo600([2 x i64] %0) #0 { + %2 = alloca %struct.point600, align 4 + %3 = alloca %struct.point600, align 4 + %4 = bitcast %struct.point600* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point600* %2 to i8* + %6 = bitcast %struct.point600* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point600* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef %1) #0 { + %3 = bitcast %struct.point601* %0 to i8* + %4 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef %1) #0 { + %3 = bitcast %struct.point602* %0 to i8* + %4 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef %1) #0 { + %3 = bitcast %struct.point603* %0 to i8* + %4 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef %1) #0 { + %3 = bitcast %struct.point604* %0 to i8* + %4 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo605([2 x i64] %0) #0 { + %2 = alloca %struct.point605, align 4 + %3 = alloca %struct.point605, align 4 + %4 = bitcast %struct.point605* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point605* %2 to i8* + %6 = bitcast %struct.point605* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point605* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef %1) #0 { + %3 = bitcast %struct.point606* %0 to i8* + %4 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef %1) #0 { + %3 = bitcast %struct.point607* %0 to i8* + %4 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef %1) #0 { + %3 = bitcast %struct.point608* %0 to i8* + %4 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef %1) #0 { + %3 = bitcast %struct.point609* %0 to i8* + %4 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo610([2 x i64] %0) #0 { + %2 = alloca %struct.point610, align 4 + %3 = alloca %struct.point610, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point610* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point610* %2 to i8* + %9 = bitcast %struct.point610* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point610* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo611([2 x i64] %0) #0 { + %2 = alloca %struct.point611, align 4 + %3 = alloca %struct.point611, align 4 + %4 = bitcast %struct.point611* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point611* %2 to i8* + %6 = bitcast %struct.point611* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point611* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo612([2 x i64] %0) #0 { + %2 = alloca %struct.point612, align 4 + %3 = alloca %struct.point612, align 4 + %4 = bitcast %struct.point612* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point612* %2 to i8* + %6 = bitcast %struct.point612* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point612* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo613([2 x i64] %0) #0 { + %2 = alloca %struct.point613, align 4 + %3 = alloca %struct.point613, align 4 + %4 = bitcast %struct.point613* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point613* %2 to i8* + %6 = bitcast %struct.point613* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point613* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef %1) #0 { + %3 = bitcast %struct.point614* %0 to i8* + %4 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef %1) #0 { + %3 = bitcast %struct.point615* %0 to i8* + %4 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo616([2 x i64] %0) #0 { + %2 = alloca %struct.point616, align 4 + %3 = alloca %struct.point616, align 4 + %4 = bitcast %struct.point616* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point616* %2 to i8* + %6 = bitcast %struct.point616* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point616* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo617([2 x i64] %0) #0 { + %2 = alloca %struct.point617, align 4 + %3 = alloca %struct.point617, align 4 + %4 = bitcast %struct.point617* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point617* %2 to i8* + %6 = bitcast %struct.point617* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point617* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo618([2 x i64] %0) #0 { + %2 = alloca %struct.point618, align 4 + %3 = alloca %struct.point618, align 4 + %4 = bitcast %struct.point618* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point618* %2 to i8* + %6 = bitcast %struct.point618* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point618* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef %1) #0 { + %3 = bitcast %struct.point619* %0 to i8* + %4 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef %1) #0 { + %3 = bitcast %struct.point620* %0 to i8* + %4 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo621([2 x i64] %0) #0 { + %2 = alloca %struct.point621, align 4 + %3 = alloca %struct.point621, align 4 + %4 = bitcast %struct.point621* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point621* %2 to i8* + %6 = bitcast %struct.point621* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point621* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef %1) #0 { + %3 = bitcast %struct.point622* %0 to i8* + %4 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef %1) #0 { + %3 = bitcast %struct.point623* %0 to i8* + %4 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef %1) #0 { + %3 = bitcast %struct.point624* %0 to i8* + %4 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef %1) #0 { + %3 = bitcast %struct.point625* %0 to i8* + %4 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo626([2 x i64] %0) #0 { + %2 = alloca %struct.point626, align 4 + %3 = alloca %struct.point626, align 4 + %4 = bitcast %struct.point626* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point626* %2 to i8* + %6 = bitcast %struct.point626* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point626* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef %1) #0 { + %3 = bitcast %struct.point627* %0 to i8* + %4 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef %1) #0 { + %3 = bitcast %struct.point628* %0 to i8* + %4 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef %1) #0 { + %3 = bitcast %struct.point629* %0 to i8* + %4 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef %1) #0 { + %3 = bitcast %struct.point630* %0 to i8* + %4 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo631(i64 %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point631* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo632(i64 %0) #0 { + %2 = alloca %struct.point632, align 4 + %3 = alloca %struct.point632, align 4 + %4 = bitcast %struct.point632* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point632* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo633([2 x i64] %0) #0 { + %2 = alloca %struct.point633, align 4 + %3 = alloca %struct.point633, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point633* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point633* %2 to i8* + %9 = bitcast %struct.point633* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point633* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo634([2 x i64] %0) #0 { + %2 = alloca %struct.point634, align 4 + %3 = alloca %struct.point634, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point634* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point634* %2 to i8* + %9 = bitcast %struct.point634* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point634* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo635([2 x i64] %0) #0 { + %2 = alloca %struct.point635, align 4 + %3 = alloca %struct.point635, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point635* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point635* %2 to i8* + %9 = bitcast %struct.point635* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point635* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo636([2 x i64] %0) #0 { + %2 = alloca %struct.point636, align 4 + %3 = alloca %struct.point636, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point636* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point636* %2 to i8* + %9 = bitcast %struct.point636* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point636* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo637([2 x i64] %0) #0 { + %2 = alloca %struct.point637, align 4 + %3 = alloca %struct.point637, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point637* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point637* %2 to i8* + %9 = bitcast %struct.point637* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point637* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo638([2 x i64] %0) #0 { + %2 = alloca %struct.point638, align 4 + %3 = alloca %struct.point638, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point638* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point638* %2 to i8* + %9 = bitcast %struct.point638* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point638* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo639([2 x i64] %0) #0 { + %2 = alloca %struct.point639, align 4 + %3 = alloca %struct.point639, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point639* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point639* %2 to i8* + %9 = bitcast %struct.point639* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point639* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo640([2 x i64] %0) #0 { + %2 = alloca %struct.point640, align 4 + %3 = alloca %struct.point640, align 4 + %4 = bitcast %struct.point640* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point640* %2 to i8* + %6 = bitcast %struct.point640* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point640* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo641([2 x i64] %0) #0 { + %2 = alloca %struct.point641, align 4 + %3 = alloca %struct.point641, align 4 + %4 = bitcast %struct.point641* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point641* %2 to i8* + %6 = bitcast %struct.point641* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point641* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo642([2 x i64] %0) #0 { + %2 = alloca %struct.point642, align 4 + %3 = alloca %struct.point642, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point642* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point642* %2 to i8* + %9 = bitcast %struct.point642* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point642* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo643([2 x i64] %0) #0 { + %2 = alloca %struct.point643, align 4 + %3 = alloca %struct.point643, align 4 + %4 = bitcast %struct.point643* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point643* %2 to i8* + %6 = bitcast %struct.point643* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point643* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo644([2 x i64] %0) #0 { + %2 = alloca %struct.point644, align 4 + %3 = alloca %struct.point644, align 4 + %4 = bitcast %struct.point644* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point644* %2 to i8* + %6 = bitcast %struct.point644* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point644* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo645([2 x i64] %0) #0 { + %2 = alloca %struct.point645, align 4 + %3 = alloca %struct.point645, align 4 + %4 = bitcast %struct.point645* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point645* %2 to i8* + %6 = bitcast %struct.point645* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point645* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo646([2 x i64] %0) #0 { + %2 = alloca %struct.point646, align 4 + %3 = alloca %struct.point646, align 4 + %4 = bitcast %struct.point646* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point646* %2 to i8* + %6 = bitcast %struct.point646* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point646* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo647([2 x i64] %0) #0 { + %2 = alloca %struct.point647, align 4 + %3 = alloca %struct.point647, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point647* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point647* %2 to i8* + %9 = bitcast %struct.point647* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point647* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo648([2 x i64] %0) #0 { + %2 = alloca %struct.point648, align 4 + %3 = alloca %struct.point648, align 4 + %4 = bitcast %struct.point648* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point648* %2 to i8* + %6 = bitcast %struct.point648* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point648* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo649([2 x i64] %0) #0 { + %2 = alloca %struct.point649, align 4 + %3 = alloca %struct.point649, align 4 + %4 = bitcast %struct.point649* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point649* %2 to i8* + %6 = bitcast %struct.point649* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point649* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo650([2 x i64] %0) #0 { + %2 = alloca %struct.point650, align 4 + %3 = alloca %struct.point650, align 4 + %4 = bitcast %struct.point650* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point650* %2 to i8* + %6 = bitcast %struct.point650* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point650* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo651([2 x i64] %0) #0 { + %2 = alloca %struct.point651, align 4 + %3 = alloca %struct.point651, align 4 + %4 = bitcast %struct.point651* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point651* %2 to i8* + %6 = bitcast %struct.point651* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point651* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo652(i64 %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point652* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo653([2 x i64] %0) #0 { + %2 = alloca %struct.point653, align 4 + %3 = alloca %struct.point653, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point653* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point653* %2 to i8* + %9 = bitcast %struct.point653* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point653* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo654([2 x i64] %0) #0 { + %2 = alloca %struct.point654, align 4 + %3 = alloca %struct.point654, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point654* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point654* %2 to i8* + %9 = bitcast %struct.point654* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point654* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo655([2 x i64] %0) #0 { + %2 = alloca %struct.point655, align 4 + %3 = alloca %struct.point655, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point655* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point655* %2 to i8* + %9 = bitcast %struct.point655* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point655* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo656([2 x i64] %0) #0 { + %2 = alloca %struct.point656, align 4 + %3 = alloca %struct.point656, align 4 + %4 = bitcast %struct.point656* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point656* %2 to i8* + %6 = bitcast %struct.point656* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point656* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo657([2 x i64] %0) #0 { + %2 = alloca %struct.point657, align 4 + %3 = alloca %struct.point657, align 4 + %4 = bitcast %struct.point657* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point657* %2 to i8* + %6 = bitcast %struct.point657* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point657* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo658([2 x i64] %0) #0 { + %2 = alloca %struct.point658, align 4 + %3 = alloca %struct.point658, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point658* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point658* %2 to i8* + %9 = bitcast %struct.point658* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point658* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo659([2 x i64] %0) #0 { + %2 = alloca %struct.point659, align 4 + %3 = alloca %struct.point659, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point659* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point659* %2 to i8* + %9 = bitcast %struct.point659* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point659* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo660([2 x i64] %0) #0 { + %2 = alloca %struct.point660, align 4 + %3 = alloca %struct.point660, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point660* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point660* %2 to i8* + %9 = bitcast %struct.point660* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point660* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo661([2 x i64] %0) #0 { + %2 = alloca %struct.point661, align 4 + %3 = alloca %struct.point661, align 4 + %4 = bitcast %struct.point661* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point661* %2 to i8* + %6 = bitcast %struct.point661* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point661* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo662([2 x i64] %0) #0 { + %2 = alloca %struct.point662, align 4 + %3 = alloca %struct.point662, align 4 + %4 = bitcast %struct.point662* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point662* %2 to i8* + %6 = bitcast %struct.point662* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point662* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo663([2 x i64] %0) #0 { + %2 = alloca %struct.point663, align 4 + %3 = alloca %struct.point663, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point663* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point663* %2 to i8* + %9 = bitcast %struct.point663* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point663* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo664([2 x i64] %0) #0 { + %2 = alloca %struct.point664, align 4 + %3 = alloca %struct.point664, align 4 + %4 = bitcast %struct.point664* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point664* %2 to i8* + %6 = bitcast %struct.point664* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point664* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo665([2 x i64] %0) #0 { + %2 = alloca %struct.point665, align 4 + %3 = alloca %struct.point665, align 4 + %4 = bitcast %struct.point665* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point665* %2 to i8* + %6 = bitcast %struct.point665* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point665* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo666([2 x i64] %0) #0 { + %2 = alloca %struct.point666, align 4 + %3 = alloca %struct.point666, align 4 + %4 = bitcast %struct.point666* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point666* %2 to i8* + %6 = bitcast %struct.point666* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point666* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo667([2 x i64] %0) #0 { + %2 = alloca %struct.point667, align 4 + %3 = alloca %struct.point667, align 4 + %4 = bitcast %struct.point667* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point667* %2 to i8* + %6 = bitcast %struct.point667* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point667* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo668([2 x i64] %0) #0 { + %2 = alloca %struct.point668, align 4 + %3 = alloca %struct.point668, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point668* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point668* %2 to i8* + %9 = bitcast %struct.point668* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point668* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo669([2 x i64] %0) #0 { + %2 = alloca %struct.point669, align 4 + %3 = alloca %struct.point669, align 4 + %4 = bitcast %struct.point669* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point669* %2 to i8* + %6 = bitcast %struct.point669* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point669* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo670([2 x i64] %0) #0 { + %2 = alloca %struct.point670, align 4 + %3 = alloca %struct.point670, align 4 + %4 = bitcast %struct.point670* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point670* %2 to i8* + %6 = bitcast %struct.point670* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point670* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo671([2 x i64] %0) #0 { + %2 = alloca %struct.point671, align 4 + %3 = alloca %struct.point671, align 4 + %4 = bitcast %struct.point671* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point671* %2 to i8* + %6 = bitcast %struct.point671* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point671* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo672([2 x i64] %0) #0 { + %2 = alloca %struct.point672, align 4 + %3 = alloca %struct.point672, align 4 + %4 = bitcast %struct.point672* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point672* %2 to i8* + %6 = bitcast %struct.point672* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point672* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo673([2 x i64] %0) #0 { + %2 = alloca %struct.point673, align 4 + %3 = alloca %struct.point673, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point673* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point673* %2 to i8* + %9 = bitcast %struct.point673* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point673* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo674([2 x i64] %0) #0 { + %2 = alloca %struct.point674, align 4 + %3 = alloca %struct.point674, align 4 + %4 = bitcast %struct.point674* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point674* %2 to i8* + %6 = bitcast %struct.point674* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point674* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo675([2 x i64] %0) #0 { + %2 = alloca %struct.point675, align 4 + %3 = alloca %struct.point675, align 4 + %4 = bitcast %struct.point675* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point675* %2 to i8* + %6 = bitcast %struct.point675* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point675* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo676([2 x i64] %0) #0 { + %2 = alloca %struct.point676, align 4 + %3 = alloca %struct.point676, align 4 + %4 = bitcast %struct.point676* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point676* %2 to i8* + %6 = bitcast %struct.point676* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point676* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef %1) #0 { + %3 = bitcast %struct.point677* %0 to i8* + %4 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef %1) #0 { + %3 = bitcast %struct.point678* %0 to i8* + %4 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo679([2 x i64] %0) #0 { + %2 = alloca %struct.point679, align 4 + %3 = alloca %struct.point679, align 4 + %4 = bitcast %struct.point679* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point679* %2 to i8* + %6 = bitcast %struct.point679* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point679* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo680([2 x i64] %0) #0 { + %2 = alloca %struct.point680, align 4 + %3 = alloca %struct.point680, align 4 + %4 = bitcast %struct.point680* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point680* %2 to i8* + %6 = bitcast %struct.point680* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point680* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo681([2 x i64] %0) #0 { + %2 = alloca %struct.point681, align 4 + %3 = alloca %struct.point681, align 4 + %4 = bitcast %struct.point681* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point681* %2 to i8* + %6 = bitcast %struct.point681* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point681* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef %1) #0 { + %3 = bitcast %struct.point682* %0 to i8* + %4 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef %1) #0 { + %3 = bitcast %struct.point683* %0 to i8* + %4 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo684([2 x i64] %0) #0 { + %2 = alloca %struct.point684, align 4 + %3 = alloca %struct.point684, align 4 + %4 = bitcast %struct.point684* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point684* %2 to i8* + %6 = bitcast %struct.point684* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point684* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef %1) #0 { + %3 = bitcast %struct.point685* %0 to i8* + %4 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef %1) #0 { + %3 = bitcast %struct.point686* %0 to i8* + %4 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef %1) #0 { + %3 = bitcast %struct.point687* %0 to i8* + %4 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef %1) #0 { + %3 = bitcast %struct.point688* %0 to i8* + %4 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo689([2 x i64] %0) #0 { + %2 = alloca %struct.point689, align 4 + %3 = alloca %struct.point689, align 4 + %4 = bitcast %struct.point689* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point689* %2 to i8* + %6 = bitcast %struct.point689* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point689* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef %1) #0 { + %3 = bitcast %struct.point690* %0 to i8* + %4 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef %1) #0 { + %3 = bitcast %struct.point691* %0 to i8* + %4 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef %1) #0 { + %3 = bitcast %struct.point692* %0 to i8* + %4 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef %1) #0 { + %3 = bitcast %struct.point693* %0 to i8* + %4 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo694([2 x i64] %0) #0 { + %2 = alloca %struct.point694, align 4 + %3 = alloca %struct.point694, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point694* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point694* %2 to i8* + %9 = bitcast %struct.point694* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point694* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo695([2 x i64] %0) #0 { + %2 = alloca %struct.point695, align 4 + %3 = alloca %struct.point695, align 4 + %4 = bitcast %struct.point695* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point695* %2 to i8* + %6 = bitcast %struct.point695* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point695* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo696([2 x i64] %0) #0 { + %2 = alloca %struct.point696, align 4 + %3 = alloca %struct.point696, align 4 + %4 = bitcast %struct.point696* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point696* %2 to i8* + %6 = bitcast %struct.point696* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point696* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo697([2 x i64] %0) #0 { + %2 = alloca %struct.point697, align 4 + %3 = alloca %struct.point697, align 4 + %4 = bitcast %struct.point697* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point697* %2 to i8* + %6 = bitcast %struct.point697* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point697* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef %1) #0 { + %3 = bitcast %struct.point698* %0 to i8* + %4 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef %1) #0 { + %3 = bitcast %struct.point699* %0 to i8* + %4 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo700([2 x i64] %0) #0 { + %2 = alloca %struct.point700, align 4 + %3 = alloca %struct.point700, align 4 + %4 = bitcast %struct.point700* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point700* %2 to i8* + %6 = bitcast %struct.point700* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point700* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo701([2 x i64] %0) #0 { + %2 = alloca %struct.point701, align 4 + %3 = alloca %struct.point701, align 4 + %4 = bitcast %struct.point701* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point701* %2 to i8* + %6 = bitcast %struct.point701* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point701* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo702([2 x i64] %0) #0 { + %2 = alloca %struct.point702, align 4 + %3 = alloca %struct.point702, align 4 + %4 = bitcast %struct.point702* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point702* %2 to i8* + %6 = bitcast %struct.point702* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point702* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef %1) #0 { + %3 = bitcast %struct.point703* %0 to i8* + %4 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef %1) #0 { + %3 = bitcast %struct.point704* %0 to i8* + %4 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo705([2 x i64] %0) #0 { + %2 = alloca %struct.point705, align 4 + %3 = alloca %struct.point705, align 4 + %4 = bitcast %struct.point705* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point705* %2 to i8* + %6 = bitcast %struct.point705* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point705* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef %1) #0 { + %3 = bitcast %struct.point706* %0 to i8* + %4 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef %1) #0 { + %3 = bitcast %struct.point707* %0 to i8* + %4 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef %1) #0 { + %3 = bitcast %struct.point708* %0 to i8* + %4 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef %1) #0 { + %3 = bitcast %struct.point709* %0 to i8* + %4 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo710([2 x i64] %0) #0 { + %2 = alloca %struct.point710, align 4 + %3 = alloca %struct.point710, align 4 + %4 = bitcast %struct.point710* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point710* %2 to i8* + %6 = bitcast %struct.point710* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point710* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef %1) #0 { + %3 = bitcast %struct.point711* %0 to i8* + %4 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef %1) #0 { + %3 = bitcast %struct.point712* %0 to i8* + %4 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef %1) #0 { + %3 = bitcast %struct.point713* %0 to i8* + %4 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef %1) #0 { + %3 = bitcast %struct.point714* %0 to i8* + %4 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo715([2 x i64] %0) #0 { + %2 = alloca %struct.point715, align 4 + %3 = alloca %struct.point715, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point715* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point715* %2 to i8* + %9 = bitcast %struct.point715* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point715* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo716([2 x i64] %0) #0 { + %2 = alloca %struct.point716, align 4 + %3 = alloca %struct.point716, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point716* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point716* %2 to i8* + %9 = bitcast %struct.point716* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point716* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo717([2 x i64] %0) #0 { + %2 = alloca %struct.point717, align 4 + %3 = alloca %struct.point717, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point717* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point717* %2 to i8* + %9 = bitcast %struct.point717* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point717* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo718([2 x i64] %0) #0 { + %2 = alloca %struct.point718, align 4 + %3 = alloca %struct.point718, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point718* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point718* %2 to i8* + %9 = bitcast %struct.point718* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point718* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo719([2 x i64] %0) #0 { + %2 = alloca %struct.point719, align 4 + %3 = alloca %struct.point719, align 4 + %4 = bitcast %struct.point719* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point719* %2 to i8* + %6 = bitcast %struct.point719* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point719* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo720([2 x i64] %0) #0 { + %2 = alloca %struct.point720, align 4 + %3 = alloca %struct.point720, align 4 + %4 = bitcast %struct.point720* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point720* %2 to i8* + %6 = bitcast %struct.point720* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point720* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo721([2 x i64] %0) #0 { + %2 = alloca %struct.point721, align 4 + %3 = alloca %struct.point721, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point721* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point721* %2 to i8* + %9 = bitcast %struct.point721* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point721* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo722([2 x i64] %0) #0 { + %2 = alloca %struct.point722, align 4 + %3 = alloca %struct.point722, align 4 + %4 = bitcast %struct.point722* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point722* %2 to i8* + %6 = bitcast %struct.point722* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point722* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo723([2 x i64] %0) #0 { + %2 = alloca %struct.point723, align 4 + %3 = alloca %struct.point723, align 4 + %4 = bitcast %struct.point723* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point723* %2 to i8* + %6 = bitcast %struct.point723* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point723* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo724([2 x i64] %0) #0 { + %2 = alloca %struct.point724, align 4 + %3 = alloca %struct.point724, align 4 + %4 = bitcast %struct.point724* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point724* %2 to i8* + %6 = bitcast %struct.point724* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point724* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo725([2 x i64] %0) #0 { + %2 = alloca %struct.point725, align 4 + %3 = alloca %struct.point725, align 4 + %4 = bitcast %struct.point725* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point725* %2 to i8* + %6 = bitcast %struct.point725* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point725* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo726([2 x i64] %0) #0 { + %2 = alloca %struct.point726, align 4 + %3 = alloca %struct.point726, align 4 + %4 = bitcast %struct.point726* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point726* %2 to i8* + %6 = bitcast %struct.point726* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point726* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef %1) #0 { + %3 = bitcast %struct.point727* %0 to i8* + %4 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef %1) #0 { + %3 = bitcast %struct.point728* %0 to i8* + %4 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef %1) #0 { + %3 = bitcast %struct.point729* %0 to i8* + %4 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef %1) #0 { + %3 = bitcast %struct.point730* %0 to i8* + %4 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo731([2 x i64] %0) #0 { + %2 = alloca %struct.point731, align 4 + %3 = alloca %struct.point731, align 4 + %4 = bitcast %struct.point731* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point731* %2 to i8* + %6 = bitcast %struct.point731* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point731* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef %1) #0 { + %3 = bitcast %struct.point732* %0 to i8* + %4 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef %1) #0 { + %3 = bitcast %struct.point733* %0 to i8* + %4 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef %1) #0 { + %3 = bitcast %struct.point734* %0 to i8* + %4 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef %1) #0 { + %3 = bitcast %struct.point735* %0 to i8* + %4 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo736([2 x i64] %0) #0 { + %2 = alloca %struct.point736, align 4 + %3 = alloca %struct.point736, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point736* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point736* %2 to i8* + %9 = bitcast %struct.point736* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point736* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo737([2 x i64] %0) #0 { + %2 = alloca %struct.point737, align 4 + %3 = alloca %struct.point737, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point737* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point737* %2 to i8* + %9 = bitcast %struct.point737* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point737* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo738([2 x i64] %0) #0 { + %2 = alloca %struct.point738, align 4 + %3 = alloca %struct.point738, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point738* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point738* %2 to i8* + %9 = bitcast %struct.point738* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point738* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo739([2 x i64] %0) #0 { + %2 = alloca %struct.point739, align 4 + %3 = alloca %struct.point739, align 4 + %4 = bitcast %struct.point739* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point739* %2 to i8* + %6 = bitcast %struct.point739* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point739* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo740([2 x i64] %0) #0 { + %2 = alloca %struct.point740, align 4 + %3 = alloca %struct.point740, align 4 + %4 = bitcast %struct.point740* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point740* %2 to i8* + %6 = bitcast %struct.point740* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point740* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo741([2 x i64] %0) #0 { + %2 = alloca %struct.point741, align 4 + %3 = alloca %struct.point741, align 4 + %4 = bitcast %struct.point741* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point741* %2 to i8* + %6 = bitcast %struct.point741* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point741* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo742([2 x i64] %0) #0 { + %2 = alloca %struct.point742, align 4 + %3 = alloca %struct.point742, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point742* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point742* %2 to i8* + %9 = bitcast %struct.point742* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point742* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo743([2 x i64] %0) #0 { + %2 = alloca %struct.point743, align 4 + %3 = alloca %struct.point743, align 4 + %4 = bitcast %struct.point743* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point743* %2 to i8* + %6 = bitcast %struct.point743* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point743* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo744([2 x i64] %0) #0 { + %2 = alloca %struct.point744, align 4 + %3 = alloca %struct.point744, align 4 + %4 = bitcast %struct.point744* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point744* %2 to i8* + %6 = bitcast %struct.point744* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point744* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo745([2 x i64] %0) #0 { + %2 = alloca %struct.point745, align 4 + %3 = alloca %struct.point745, align 4 + %4 = bitcast %struct.point745* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point745* %2 to i8* + %6 = bitcast %struct.point745* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point745* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo746([2 x i64] %0) #0 { + %2 = alloca %struct.point746, align 4 + %3 = alloca %struct.point746, align 4 + %4 = bitcast %struct.point746* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point746* %2 to i8* + %6 = bitcast %struct.point746* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point746* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo747([2 x i64] %0) #0 { + %2 = alloca %struct.point747, align 4 + %3 = alloca %struct.point747, align 4 + %4 = bitcast %struct.point747* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point747* %2 to i8* + %6 = bitcast %struct.point747* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point747* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef %1) #0 { + %3 = bitcast %struct.point748* %0 to i8* + %4 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef %1) #0 { + %3 = bitcast %struct.point749* %0 to i8* + %4 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef %1) #0 { + %3 = bitcast %struct.point750* %0 to i8* + %4 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef %1) #0 { + %3 = bitcast %struct.point751* %0 to i8* + %4 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo752([2 x i64] %0) #0 { + %2 = alloca %struct.point752, align 4 + %3 = alloca %struct.point752, align 4 + %4 = bitcast %struct.point752* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point752* %2 to i8* + %6 = bitcast %struct.point752* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point752* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef %1) #0 { + %3 = bitcast %struct.point753* %0 to i8* + %4 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef %1) #0 { + %3 = bitcast %struct.point754* %0 to i8* + %4 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef %1) #0 { + %3 = bitcast %struct.point755* %0 to i8* + %4 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef %1) #0 { + %3 = bitcast %struct.point756* %0 to i8* + %4 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo757([2 x i64] %0) #0 { + %2 = alloca %struct.point757, align 4 + %3 = alloca %struct.point757, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point757* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point757* %2 to i8* + %9 = bitcast %struct.point757* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point757* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo758([2 x i64] %0) #0 { + %2 = alloca %struct.point758, align 4 + %3 = alloca %struct.point758, align 4 + %4 = bitcast %struct.point758* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point758* %2 to i8* + %6 = bitcast %struct.point758* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point758* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo759([2 x i64] %0) #0 { + %2 = alloca %struct.point759, align 4 + %3 = alloca %struct.point759, align 4 + %4 = bitcast %struct.point759* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point759* %2 to i8* + %6 = bitcast %struct.point759* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point759* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo760([2 x i64] %0) #0 { + %2 = alloca %struct.point760, align 4 + %3 = alloca %struct.point760, align 4 + %4 = bitcast %struct.point760* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point760* %2 to i8* + %6 = bitcast %struct.point760* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point760* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef %1) #0 { + %3 = bitcast %struct.point761* %0 to i8* + %4 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef %1) #0 { + %3 = bitcast %struct.point762* %0 to i8* + %4 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo763([2 x i64] %0) #0 { + %2 = alloca %struct.point763, align 4 + %3 = alloca %struct.point763, align 4 + %4 = bitcast %struct.point763* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point763* %2 to i8* + %6 = bitcast %struct.point763* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point763* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo764([2 x i64] %0) #0 { + %2 = alloca %struct.point764, align 4 + %3 = alloca %struct.point764, align 4 + %4 = bitcast %struct.point764* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point764* %2 to i8* + %6 = bitcast %struct.point764* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point764* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo765([2 x i64] %0) #0 { + %2 = alloca %struct.point765, align 4 + %3 = alloca %struct.point765, align 4 + %4 = bitcast %struct.point765* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point765* %2 to i8* + %6 = bitcast %struct.point765* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point765* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef %1) #0 { + %3 = bitcast %struct.point766* %0 to i8* + %4 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef %1) #0 { + %3 = bitcast %struct.point767* %0 to i8* + %4 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo768([2 x i64] %0) #0 { + %2 = alloca %struct.point768, align 4 + %3 = alloca %struct.point768, align 4 + %4 = bitcast %struct.point768* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point768* %2 to i8* + %6 = bitcast %struct.point768* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point768* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef %1) #0 { + %3 = bitcast %struct.point769* %0 to i8* + %4 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef %1) #0 { + %3 = bitcast %struct.point770* %0 to i8* + %4 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef %1) #0 { + %3 = bitcast %struct.point771* %0 to i8* + %4 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef %1) #0 { + %3 = bitcast %struct.point772* %0 to i8* + %4 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo773([2 x i64] %0) #0 { + %2 = alloca %struct.point773, align 4 + %3 = alloca %struct.point773, align 4 + %4 = bitcast %struct.point773* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point773* %2 to i8* + %6 = bitcast %struct.point773* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point773* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef %1) #0 { + %3 = bitcast %struct.point774* %0 to i8* + %4 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef %1) #0 { + %3 = bitcast %struct.point775* %0 to i8* + %4 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef %1) #0 { + %3 = bitcast %struct.point776* %0 to i8* + %4 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef %1) #0 { + %3 = bitcast %struct.point777* %0 to i8* + %4 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo778([2 x i64] %0) #0 { + %2 = alloca %struct.point778, align 4 + %3 = alloca %struct.point778, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point778* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point778* %2 to i8* + %9 = bitcast %struct.point778* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point778* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo779([2 x i64] %0) #0 { + %2 = alloca %struct.point779, align 4 + %3 = alloca %struct.point779, align 4 + %4 = bitcast %struct.point779* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point779* %2 to i8* + %6 = bitcast %struct.point779* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point779* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo780([2 x i64] %0) #0 { + %2 = alloca %struct.point780, align 4 + %3 = alloca %struct.point780, align 4 + %4 = bitcast %struct.point780* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point780* %2 to i8* + %6 = bitcast %struct.point780* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point780* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo781([2 x i64] %0) #0 { + %2 = alloca %struct.point781, align 4 + %3 = alloca %struct.point781, align 4 + %4 = bitcast %struct.point781* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point781* %2 to i8* + %6 = bitcast %struct.point781* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point781* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef %1) #0 { + %3 = bitcast %struct.point782* %0 to i8* + %4 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef %1) #0 { + %3 = bitcast %struct.point783* %0 to i8* + %4 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo784([2 x i64] %0) #0 { + %2 = alloca %struct.point784, align 4 + %3 = alloca %struct.point784, align 4 + %4 = bitcast %struct.point784* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point784* %2 to i8* + %6 = bitcast %struct.point784* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point784* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo785([2 x i64] %0) #0 { + %2 = alloca %struct.point785, align 4 + %3 = alloca %struct.point785, align 4 + %4 = bitcast %struct.point785* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point785* %2 to i8* + %6 = bitcast %struct.point785* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point785* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo786([2 x i64] %0) #0 { + %2 = alloca %struct.point786, align 4 + %3 = alloca %struct.point786, align 4 + %4 = bitcast %struct.point786* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point786* %2 to i8* + %6 = bitcast %struct.point786* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point786* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef %1) #0 { + %3 = bitcast %struct.point787* %0 to i8* + %4 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef %1) #0 { + %3 = bitcast %struct.point788* %0 to i8* + %4 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo789([2 x i64] %0) #0 { + %2 = alloca %struct.point789, align 4 + %3 = alloca %struct.point789, align 4 + %4 = bitcast %struct.point789* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point789* %2 to i8* + %6 = bitcast %struct.point789* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point789* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef %1) #0 { + %3 = bitcast %struct.point790* %0 to i8* + %4 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef %1) #0 { + %3 = bitcast %struct.point791* %0 to i8* + %4 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef %1) #0 { + %3 = bitcast %struct.point792* %0 to i8* + %4 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef %1) #0 { + %3 = bitcast %struct.point793* %0 to i8* + %4 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo794([2 x i64] %0) #0 { + %2 = alloca %struct.point794, align 4 + %3 = alloca %struct.point794, align 4 + %4 = bitcast %struct.point794* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point794* %2 to i8* + %6 = bitcast %struct.point794* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point794* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef %1) #0 { + %3 = bitcast %struct.point795* %0 to i8* + %4 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef %1) #0 { + %3 = bitcast %struct.point796* %0 to i8* + %4 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef %1) #0 { + %3 = bitcast %struct.point797* %0 to i8* + %4 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef %1) #0 { + %3 = bitcast %struct.point798* %0 to i8* + %4 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo799(i64 %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point799* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo800(i64 %0) #0 { + %2 = alloca %struct.point800, align 4 + %3 = alloca %struct.point800, align 4 + %4 = bitcast %struct.point800* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point800* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo801(i64 %0) #0 { + %2 = alloca %struct.point801, align 4 + %3 = alloca %struct.point801, align 4 + %4 = bitcast %struct.point801* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point801* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo802([2 x i64] %0) #0 { + %2 = alloca %struct.point802, align 4 + %3 = alloca %struct.point802, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point802* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point802* %2 to i8* + %9 = bitcast %struct.point802* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point802* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo803([2 x i64] %0) #0 { + %2 = alloca %struct.point803, align 4 + %3 = alloca %struct.point803, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point803* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point803* %2 to i8* + %9 = bitcast %struct.point803* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point803* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo804([2 x i64] %0) #0 { + %2 = alloca %struct.point804, align 4 + %3 = alloca %struct.point804, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point804* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point804* %2 to i8* + %9 = bitcast %struct.point804* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point804* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo805(i64 %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point805* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo806([2 x i64] %0) #0 { + %2 = alloca %struct.point806, align 4 + %3 = alloca %struct.point806, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point806* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point806* %2 to i8* + %9 = bitcast %struct.point806* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point806* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo807([2 x i64] %0) #0 { + %2 = alloca %struct.point807, align 4 + %3 = alloca %struct.point807, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point807* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point807* %2 to i8* + %9 = bitcast %struct.point807* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point807* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo808([2 x i64] %0) #0 { + %2 = alloca %struct.point808, align 4 + %3 = alloca %struct.point808, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point808* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point808* %2 to i8* + %9 = bitcast %struct.point808* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point808* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo809([2 x i64] %0) #0 { + %2 = alloca %struct.point809, align 4 + %3 = alloca %struct.point809, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point809* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point809* %2 to i8* + %9 = bitcast %struct.point809* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point809* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo810([2 x i64] %0) #0 { + %2 = alloca %struct.point810, align 4 + %3 = alloca %struct.point810, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point810* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point810* %2 to i8* + %9 = bitcast %struct.point810* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point810* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo811([2 x i64] %0) #0 { + %2 = alloca %struct.point811, align 4 + %3 = alloca %struct.point811, align 4 + %4 = bitcast %struct.point811* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point811* %2 to i8* + %6 = bitcast %struct.point811* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point811* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo812([2 x i64] %0) #0 { + %2 = alloca %struct.point812, align 4 + %3 = alloca %struct.point812, align 4 + %4 = bitcast %struct.point812* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point812* %2 to i8* + %6 = bitcast %struct.point812* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point812* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo813([2 x i64] %0) #0 { + %2 = alloca %struct.point813, align 4 + %3 = alloca %struct.point813, align 4 + %4 = bitcast %struct.point813* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point813* %2 to i8* + %6 = bitcast %struct.point813* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point813* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo814([2 x i64] %0) #0 { + %2 = alloca %struct.point814, align 4 + %3 = alloca %struct.point814, align 4 + %4 = bitcast %struct.point814* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point814* %2 to i8* + %6 = bitcast %struct.point814* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point814* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo815([2 x i64] %0) #0 { + %2 = alloca %struct.point815, align 4 + %3 = alloca %struct.point815, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point815* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point815* %2 to i8* + %9 = bitcast %struct.point815* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point815* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo816([2 x i64] %0) #0 { + %2 = alloca %struct.point816, align 4 + %3 = alloca %struct.point816, align 4 + %4 = bitcast %struct.point816* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point816* %2 to i8* + %6 = bitcast %struct.point816* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point816* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo817([2 x i64] %0) #0 { + %2 = alloca %struct.point817, align 4 + %3 = alloca %struct.point817, align 4 + %4 = bitcast %struct.point817* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point817* %2 to i8* + %6 = bitcast %struct.point817* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point817* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo818([2 x i64] %0) #0 { + %2 = alloca %struct.point818, align 4 + %3 = alloca %struct.point818, align 4 + %4 = bitcast %struct.point818* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point818* %2 to i8* + %6 = bitcast %struct.point818* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point818* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo819([2 x i64] %0) #0 { + %2 = alloca %struct.point819, align 4 + %3 = alloca %struct.point819, align 4 + %4 = bitcast %struct.point819* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point819* %2 to i8* + %6 = bitcast %struct.point819* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point819* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo820(i64 %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point820* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo821([2 x i64] %0) #0 { + %2 = alloca %struct.point821, align 4 + %3 = alloca %struct.point821, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point821* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point821* %2 to i8* + %9 = bitcast %struct.point821* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point821* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo822([2 x i64] %0) #0 { + %2 = alloca %struct.point822, align 4 + %3 = alloca %struct.point822, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point822* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point822* %2 to i8* + %9 = bitcast %struct.point822* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point822* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo823([2 x i64] %0) #0 { + %2 = alloca %struct.point823, align 4 + %3 = alloca %struct.point823, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point823* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point823* %2 to i8* + %9 = bitcast %struct.point823* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point823* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo824([2 x i64] %0) #0 { + %2 = alloca %struct.point824, align 4 + %3 = alloca %struct.point824, align 4 + %4 = bitcast %struct.point824* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point824* %2 to i8* + %6 = bitcast %struct.point824* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point824* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo825([2 x i64] %0) #0 { + %2 = alloca %struct.point825, align 4 + %3 = alloca %struct.point825, align 4 + %4 = bitcast %struct.point825* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point825* %2 to i8* + %6 = bitcast %struct.point825* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point825* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo826([2 x i64] %0) #0 { + %2 = alloca %struct.point826, align 4 + %3 = alloca %struct.point826, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point826* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point826* %2 to i8* + %9 = bitcast %struct.point826* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point826* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo827([2 x i64] %0) #0 { + %2 = alloca %struct.point827, align 4 + %3 = alloca %struct.point827, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point827* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point827* %2 to i8* + %9 = bitcast %struct.point827* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point827* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo828([2 x i64] %0) #0 { + %2 = alloca %struct.point828, align 4 + %3 = alloca %struct.point828, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point828* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point828* %2 to i8* + %9 = bitcast %struct.point828* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point828* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo829([2 x i64] %0) #0 { + %2 = alloca %struct.point829, align 4 + %3 = alloca %struct.point829, align 4 + %4 = bitcast %struct.point829* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point829* %2 to i8* + %6 = bitcast %struct.point829* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point829* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo830([2 x i64] %0) #0 { + %2 = alloca %struct.point830, align 4 + %3 = alloca %struct.point830, align 4 + %4 = bitcast %struct.point830* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point830* %2 to i8* + %6 = bitcast %struct.point830* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point830* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo831([2 x i64] %0) #0 { + %2 = alloca %struct.point831, align 4 + %3 = alloca %struct.point831, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point831* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point831* %2 to i8* + %9 = bitcast %struct.point831* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point831* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo832([2 x i64] %0) #0 { + %2 = alloca %struct.point832, align 4 + %3 = alloca %struct.point832, align 4 + %4 = bitcast %struct.point832* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point832* %2 to i8* + %6 = bitcast %struct.point832* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point832* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo833([2 x i64] %0) #0 { + %2 = alloca %struct.point833, align 4 + %3 = alloca %struct.point833, align 4 + %4 = bitcast %struct.point833* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point833* %2 to i8* + %6 = bitcast %struct.point833* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point833* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo834([2 x i64] %0) #0 { + %2 = alloca %struct.point834, align 4 + %3 = alloca %struct.point834, align 4 + %4 = bitcast %struct.point834* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point834* %2 to i8* + %6 = bitcast %struct.point834* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point834* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo835([2 x i64] %0) #0 { + %2 = alloca %struct.point835, align 4 + %3 = alloca %struct.point835, align 4 + %4 = bitcast %struct.point835* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point835* %2 to i8* + %6 = bitcast %struct.point835* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point835* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo836([2 x i64] %0) #0 { + %2 = alloca %struct.point836, align 4 + %3 = alloca %struct.point836, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point836* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point836* %2 to i8* + %9 = bitcast %struct.point836* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point836* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo837([2 x i64] %0) #0 { + %2 = alloca %struct.point837, align 4 + %3 = alloca %struct.point837, align 4 + %4 = bitcast %struct.point837* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point837* %2 to i8* + %6 = bitcast %struct.point837* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point837* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo838([2 x i64] %0) #0 { + %2 = alloca %struct.point838, align 4 + %3 = alloca %struct.point838, align 4 + %4 = bitcast %struct.point838* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point838* %2 to i8* + %6 = bitcast %struct.point838* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point838* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo839([2 x i64] %0) #0 { + %2 = alloca %struct.point839, align 4 + %3 = alloca %struct.point839, align 4 + %4 = bitcast %struct.point839* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point839* %2 to i8* + %6 = bitcast %struct.point839* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point839* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo840([2 x i64] %0) #0 { + %2 = alloca %struct.point840, align 4 + %3 = alloca %struct.point840, align 4 + %4 = bitcast %struct.point840* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point840* %2 to i8* + %6 = bitcast %struct.point840* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point840* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo841([2 x i64] %0) #0 { + %2 = alloca %struct.point841, align 4 + %3 = alloca %struct.point841, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point841* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point841* %2 to i8* + %9 = bitcast %struct.point841* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point841* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo842([2 x i64] %0) #0 { + %2 = alloca %struct.point842, align 4 + %3 = alloca %struct.point842, align 4 + %4 = bitcast %struct.point842* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point842* %2 to i8* + %6 = bitcast %struct.point842* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point842* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo843([2 x i64] %0) #0 { + %2 = alloca %struct.point843, align 4 + %3 = alloca %struct.point843, align 4 + %4 = bitcast %struct.point843* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point843* %2 to i8* + %6 = bitcast %struct.point843* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point843* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo844([2 x i64] %0) #0 { + %2 = alloca %struct.point844, align 4 + %3 = alloca %struct.point844, align 4 + %4 = bitcast %struct.point844* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point844* %2 to i8* + %6 = bitcast %struct.point844* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point844* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef %1) #0 { + %3 = bitcast %struct.point845* %0 to i8* + %4 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef %1) #0 { + %3 = bitcast %struct.point846* %0 to i8* + %4 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo847([2 x i64] %0) #0 { + %2 = alloca %struct.point847, align 4 + %3 = alloca %struct.point847, align 4 + %4 = bitcast %struct.point847* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point847* %2 to i8* + %6 = bitcast %struct.point847* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point847* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo848([2 x i64] %0) #0 { + %2 = alloca %struct.point848, align 4 + %3 = alloca %struct.point848, align 4 + %4 = bitcast %struct.point848* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point848* %2 to i8* + %6 = bitcast %struct.point848* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point848* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo849([2 x i64] %0) #0 { + %2 = alloca %struct.point849, align 4 + %3 = alloca %struct.point849, align 4 + %4 = bitcast %struct.point849* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point849* %2 to i8* + %6 = bitcast %struct.point849* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point849* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef %1) #0 { + %3 = bitcast %struct.point850* %0 to i8* + %4 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef %1) #0 { + %3 = bitcast %struct.point851* %0 to i8* + %4 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo852([2 x i64] %0) #0 { + %2 = alloca %struct.point852, align 4 + %3 = alloca %struct.point852, align 4 + %4 = bitcast %struct.point852* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point852* %2 to i8* + %6 = bitcast %struct.point852* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point852* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef %1) #0 { + %3 = bitcast %struct.point853* %0 to i8* + %4 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef %1) #0 { + %3 = bitcast %struct.point854* %0 to i8* + %4 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef %1) #0 { + %3 = bitcast %struct.point855* %0 to i8* + %4 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef %1) #0 { + %3 = bitcast %struct.point856* %0 to i8* + %4 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo857([2 x i64] %0) #0 { + %2 = alloca %struct.point857, align 4 + %3 = alloca %struct.point857, align 4 + %4 = bitcast %struct.point857* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point857* %2 to i8* + %6 = bitcast %struct.point857* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point857* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef %1) #0 { + %3 = bitcast %struct.point858* %0 to i8* + %4 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef %1) #0 { + %3 = bitcast %struct.point859* %0 to i8* + %4 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef %1) #0 { + %3 = bitcast %struct.point860* %0 to i8* + %4 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef %1) #0 { + %3 = bitcast %struct.point861* %0 to i8* + %4 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo862([2 x i64] %0) #0 { + %2 = alloca %struct.point862, align 4 + %3 = alloca %struct.point862, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point862* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point862* %2 to i8* + %9 = bitcast %struct.point862* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point862* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo863([2 x i64] %0) #0 { + %2 = alloca %struct.point863, align 4 + %3 = alloca %struct.point863, align 4 + %4 = bitcast %struct.point863* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point863* %2 to i8* + %6 = bitcast %struct.point863* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point863* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo864([2 x i64] %0) #0 { + %2 = alloca %struct.point864, align 4 + %3 = alloca %struct.point864, align 4 + %4 = bitcast %struct.point864* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point864* %2 to i8* + %6 = bitcast %struct.point864* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point864* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo865([2 x i64] %0) #0 { + %2 = alloca %struct.point865, align 4 + %3 = alloca %struct.point865, align 4 + %4 = bitcast %struct.point865* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point865* %2 to i8* + %6 = bitcast %struct.point865* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point865* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef %1) #0 { + %3 = bitcast %struct.point866* %0 to i8* + %4 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef %1) #0 { + %3 = bitcast %struct.point867* %0 to i8* + %4 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo868([2 x i64] %0) #0 { + %2 = alloca %struct.point868, align 4 + %3 = alloca %struct.point868, align 4 + %4 = bitcast %struct.point868* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point868* %2 to i8* + %6 = bitcast %struct.point868* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point868* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo869([2 x i64] %0) #0 { + %2 = alloca %struct.point869, align 4 + %3 = alloca %struct.point869, align 4 + %4 = bitcast %struct.point869* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point869* %2 to i8* + %6 = bitcast %struct.point869* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point869* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo870([2 x i64] %0) #0 { + %2 = alloca %struct.point870, align 4 + %3 = alloca %struct.point870, align 4 + %4 = bitcast %struct.point870* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point870* %2 to i8* + %6 = bitcast %struct.point870* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point870* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef %1) #0 { + %3 = bitcast %struct.point871* %0 to i8* + %4 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef %1) #0 { + %3 = bitcast %struct.point872* %0 to i8* + %4 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo873([2 x i64] %0) #0 { + %2 = alloca %struct.point873, align 4 + %3 = alloca %struct.point873, align 4 + %4 = bitcast %struct.point873* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point873* %2 to i8* + %6 = bitcast %struct.point873* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point873* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef %1) #0 { + %3 = bitcast %struct.point874* %0 to i8* + %4 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef %1) #0 { + %3 = bitcast %struct.point875* %0 to i8* + %4 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef %1) #0 { + %3 = bitcast %struct.point876* %0 to i8* + %4 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef %1) #0 { + %3 = bitcast %struct.point877* %0 to i8* + %4 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo878([2 x i64] %0) #0 { + %2 = alloca %struct.point878, align 4 + %3 = alloca %struct.point878, align 4 + %4 = bitcast %struct.point878* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point878* %2 to i8* + %6 = bitcast %struct.point878* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point878* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef %1) #0 { + %3 = bitcast %struct.point879* %0 to i8* + %4 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef %1) #0 { + %3 = bitcast %struct.point880* %0 to i8* + %4 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef %1) #0 { + %3 = bitcast %struct.point881* %0 to i8* + %4 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef %1) #0 { + %3 = bitcast %struct.point882* %0 to i8* + %4 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo883(i64 %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point883* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo884(i64 %0) #0 { + %2 = alloca %struct.point884, align 4 + %3 = alloca %struct.point884, align 4 + %4 = bitcast %struct.point884* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point884* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo885([2 x i64] %0) #0 { + %2 = alloca %struct.point885, align 4 + %3 = alloca %struct.point885, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point885* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point885* %2 to i8* + %9 = bitcast %struct.point885* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point885* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo886([2 x i64] %0) #0 { + %2 = alloca %struct.point886, align 4 + %3 = alloca %struct.point886, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point886* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point886* %2 to i8* + %9 = bitcast %struct.point886* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point886* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo887([2 x i64] %0) #0 { + %2 = alloca %struct.point887, align 4 + %3 = alloca %struct.point887, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point887* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point887* %2 to i8* + %9 = bitcast %struct.point887* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point887* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo888([2 x i64] %0) #0 { + %2 = alloca %struct.point888, align 4 + %3 = alloca %struct.point888, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point888* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point888* %2 to i8* + %9 = bitcast %struct.point888* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point888* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo889([2 x i64] %0) #0 { + %2 = alloca %struct.point889, align 4 + %3 = alloca %struct.point889, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point889* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point889* %2 to i8* + %9 = bitcast %struct.point889* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point889* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo890([2 x i64] %0) #0 { + %2 = alloca %struct.point890, align 4 + %3 = alloca %struct.point890, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point890* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point890* %2 to i8* + %9 = bitcast %struct.point890* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point890* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo891([2 x i64] %0) #0 { + %2 = alloca %struct.point891, align 4 + %3 = alloca %struct.point891, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point891* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point891* %2 to i8* + %9 = bitcast %struct.point891* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point891* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo892([2 x i64] %0) #0 { + %2 = alloca %struct.point892, align 4 + %3 = alloca %struct.point892, align 4 + %4 = bitcast %struct.point892* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point892* %2 to i8* + %6 = bitcast %struct.point892* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point892* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo893([2 x i64] %0) #0 { + %2 = alloca %struct.point893, align 4 + %3 = alloca %struct.point893, align 4 + %4 = bitcast %struct.point893* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point893* %2 to i8* + %6 = bitcast %struct.point893* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point893* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo894([2 x i64] %0) #0 { + %2 = alloca %struct.point894, align 4 + %3 = alloca %struct.point894, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point894* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point894* %2 to i8* + %9 = bitcast %struct.point894* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point894* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo895([2 x i64] %0) #0 { + %2 = alloca %struct.point895, align 4 + %3 = alloca %struct.point895, align 4 + %4 = bitcast %struct.point895* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point895* %2 to i8* + %6 = bitcast %struct.point895* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point895* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo896([2 x i64] %0) #0 { + %2 = alloca %struct.point896, align 4 + %3 = alloca %struct.point896, align 4 + %4 = bitcast %struct.point896* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point896* %2 to i8* + %6 = bitcast %struct.point896* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point896* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo897([2 x i64] %0) #0 { + %2 = alloca %struct.point897, align 4 + %3 = alloca %struct.point897, align 4 + %4 = bitcast %struct.point897* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point897* %2 to i8* + %6 = bitcast %struct.point897* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point897* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo898([2 x i64] %0) #0 { + %2 = alloca %struct.point898, align 4 + %3 = alloca %struct.point898, align 4 + %4 = bitcast %struct.point898* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point898* %2 to i8* + %6 = bitcast %struct.point898* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point898* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo899([2 x i64] %0) #0 { + %2 = alloca %struct.point899, align 4 + %3 = alloca %struct.point899, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point899* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point899* %2 to i8* + %9 = bitcast %struct.point899* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point899* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo900([2 x i64] %0) #0 { + %2 = alloca %struct.point900, align 4 + %3 = alloca %struct.point900, align 4 + %4 = bitcast %struct.point900* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point900* %2 to i8* + %6 = bitcast %struct.point900* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point900* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo901([2 x i64] %0) #0 { + %2 = alloca %struct.point901, align 4 + %3 = alloca %struct.point901, align 4 + %4 = bitcast %struct.point901* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point901* %2 to i8* + %6 = bitcast %struct.point901* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point901* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo902([2 x i64] %0) #0 { + %2 = alloca %struct.point902, align 4 + %3 = alloca %struct.point902, align 4 + %4 = bitcast %struct.point902* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point902* %2 to i8* + %6 = bitcast %struct.point902* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point902* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo903([2 x i64] %0) #0 { + %2 = alloca %struct.point903, align 4 + %3 = alloca %struct.point903, align 4 + %4 = bitcast %struct.point903* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point903* %2 to i8* + %6 = bitcast %struct.point903* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point903* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo904(i64 %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point904* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo905([2 x i64] %0) #0 { + %2 = alloca %struct.point905, align 4 + %3 = alloca %struct.point905, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point905* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point905* %2 to i8* + %9 = bitcast %struct.point905* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point905* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo906([2 x i64] %0) #0 { + %2 = alloca %struct.point906, align 4 + %3 = alloca %struct.point906, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point906* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point906* %2 to i8* + %9 = bitcast %struct.point906* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point906* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo907([2 x i64] %0) #0 { + %2 = alloca %struct.point907, align 4 + %3 = alloca %struct.point907, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point907* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point907* %2 to i8* + %9 = bitcast %struct.point907* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point907* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo908([2 x i64] %0) #0 { + %2 = alloca %struct.point908, align 4 + %3 = alloca %struct.point908, align 4 + %4 = bitcast %struct.point908* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point908* %2 to i8* + %6 = bitcast %struct.point908* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point908* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo909([2 x i64] %0) #0 { + %2 = alloca %struct.point909, align 4 + %3 = alloca %struct.point909, align 4 + %4 = bitcast %struct.point909* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point909* %2 to i8* + %6 = bitcast %struct.point909* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point909* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo910([2 x i64] %0) #0 { + %2 = alloca %struct.point910, align 4 + %3 = alloca %struct.point910, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point910* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point910* %2 to i8* + %9 = bitcast %struct.point910* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point910* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo911([2 x i64] %0) #0 { + %2 = alloca %struct.point911, align 4 + %3 = alloca %struct.point911, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point911* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point911* %2 to i8* + %9 = bitcast %struct.point911* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point911* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo912([2 x i64] %0) #0 { + %2 = alloca %struct.point912, align 4 + %3 = alloca %struct.point912, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point912* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point912* %2 to i8* + %9 = bitcast %struct.point912* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point912* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo913([2 x i64] %0) #0 { + %2 = alloca %struct.point913, align 4 + %3 = alloca %struct.point913, align 4 + %4 = bitcast %struct.point913* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point913* %2 to i8* + %6 = bitcast %struct.point913* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point913* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo914([2 x i64] %0) #0 { + %2 = alloca %struct.point914, align 4 + %3 = alloca %struct.point914, align 4 + %4 = bitcast %struct.point914* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point914* %2 to i8* + %6 = bitcast %struct.point914* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point914* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo915([2 x i64] %0) #0 { + %2 = alloca %struct.point915, align 4 + %3 = alloca %struct.point915, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point915* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point915* %2 to i8* + %9 = bitcast %struct.point915* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point915* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo916([2 x i64] %0) #0 { + %2 = alloca %struct.point916, align 4 + %3 = alloca %struct.point916, align 4 + %4 = bitcast %struct.point916* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point916* %2 to i8* + %6 = bitcast %struct.point916* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point916* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo917([2 x i64] %0) #0 { + %2 = alloca %struct.point917, align 4 + %3 = alloca %struct.point917, align 4 + %4 = bitcast %struct.point917* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point917* %2 to i8* + %6 = bitcast %struct.point917* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point917* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo918([2 x i64] %0) #0 { + %2 = alloca %struct.point918, align 4 + %3 = alloca %struct.point918, align 4 + %4 = bitcast %struct.point918* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point918* %2 to i8* + %6 = bitcast %struct.point918* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point918* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo919([2 x i64] %0) #0 { + %2 = alloca %struct.point919, align 4 + %3 = alloca %struct.point919, align 4 + %4 = bitcast %struct.point919* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point919* %2 to i8* + %6 = bitcast %struct.point919* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point919* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo920([2 x i64] %0) #0 { + %2 = alloca %struct.point920, align 4 + %3 = alloca %struct.point920, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point920* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point920* %2 to i8* + %9 = bitcast %struct.point920* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point920* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo921([2 x i64] %0) #0 { + %2 = alloca %struct.point921, align 4 + %3 = alloca %struct.point921, align 4 + %4 = bitcast %struct.point921* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point921* %2 to i8* + %6 = bitcast %struct.point921* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point921* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo922([2 x i64] %0) #0 { + %2 = alloca %struct.point922, align 4 + %3 = alloca %struct.point922, align 4 + %4 = bitcast %struct.point922* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point922* %2 to i8* + %6 = bitcast %struct.point922* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point922* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo923([2 x i64] %0) #0 { + %2 = alloca %struct.point923, align 4 + %3 = alloca %struct.point923, align 4 + %4 = bitcast %struct.point923* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point923* %2 to i8* + %6 = bitcast %struct.point923* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point923* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo924([2 x i64] %0) #0 { + %2 = alloca %struct.point924, align 4 + %3 = alloca %struct.point924, align 4 + %4 = bitcast %struct.point924* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point924* %2 to i8* + %6 = bitcast %struct.point924* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point924* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo925([2 x i64] %0) #0 { + %2 = alloca %struct.point925, align 4 + %3 = alloca %struct.point925, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point925* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point925* %2 to i8* + %9 = bitcast %struct.point925* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point925* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo926([2 x i64] %0) #0 { + %2 = alloca %struct.point926, align 4 + %3 = alloca %struct.point926, align 4 + %4 = bitcast %struct.point926* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point926* %2 to i8* + %6 = bitcast %struct.point926* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point926* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo927([2 x i64] %0) #0 { + %2 = alloca %struct.point927, align 4 + %3 = alloca %struct.point927, align 4 + %4 = bitcast %struct.point927* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point927* %2 to i8* + %6 = bitcast %struct.point927* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point927* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo928([2 x i64] %0) #0 { + %2 = alloca %struct.point928, align 4 + %3 = alloca %struct.point928, align 4 + %4 = bitcast %struct.point928* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point928* %2 to i8* + %6 = bitcast %struct.point928* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point928* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef %1) #0 { + %3 = bitcast %struct.point929* %0 to i8* + %4 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef %1) #0 { + %3 = bitcast %struct.point930* %0 to i8* + %4 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo931([2 x i64] %0) #0 { + %2 = alloca %struct.point931, align 4 + %3 = alloca %struct.point931, align 4 + %4 = bitcast %struct.point931* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point931* %2 to i8* + %6 = bitcast %struct.point931* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point931* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo932([2 x i64] %0) #0 { + %2 = alloca %struct.point932, align 4 + %3 = alloca %struct.point932, align 4 + %4 = bitcast %struct.point932* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point932* %2 to i8* + %6 = bitcast %struct.point932* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point932* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo933([2 x i64] %0) #0 { + %2 = alloca %struct.point933, align 4 + %3 = alloca %struct.point933, align 4 + %4 = bitcast %struct.point933* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point933* %2 to i8* + %6 = bitcast %struct.point933* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point933* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef %1) #0 { + %3 = bitcast %struct.point934* %0 to i8* + %4 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef %1) #0 { + %3 = bitcast %struct.point935* %0 to i8* + %4 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo936([2 x i64] %0) #0 { + %2 = alloca %struct.point936, align 4 + %3 = alloca %struct.point936, align 4 + %4 = bitcast %struct.point936* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point936* %2 to i8* + %6 = bitcast %struct.point936* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point936* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef %1) #0 { + %3 = bitcast %struct.point937* %0 to i8* + %4 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef %1) #0 { + %3 = bitcast %struct.point938* %0 to i8* + %4 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef %1) #0 { + %3 = bitcast %struct.point939* %0 to i8* + %4 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef %1) #0 { + %3 = bitcast %struct.point940* %0 to i8* + %4 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo941([2 x i64] %0) #0 { + %2 = alloca %struct.point941, align 4 + %3 = alloca %struct.point941, align 4 + %4 = bitcast %struct.point941* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point941* %2 to i8* + %6 = bitcast %struct.point941* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point941* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef %1) #0 { + %3 = bitcast %struct.point942* %0 to i8* + %4 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef %1) #0 { + %3 = bitcast %struct.point943* %0 to i8* + %4 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef %1) #0 { + %3 = bitcast %struct.point944* %0 to i8* + %4 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef %1) #0 { + %3 = bitcast %struct.point945* %0 to i8* + %4 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo946([2 x i64] %0) #0 { + %2 = alloca %struct.point946, align 4 + %3 = alloca %struct.point946, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point946* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point946* %2 to i8* + %9 = bitcast %struct.point946* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point946* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo947([2 x i64] %0) #0 { + %2 = alloca %struct.point947, align 4 + %3 = alloca %struct.point947, align 4 + %4 = bitcast %struct.point947* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point947* %2 to i8* + %6 = bitcast %struct.point947* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point947* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo948([2 x i64] %0) #0 { + %2 = alloca %struct.point948, align 4 + %3 = alloca %struct.point948, align 4 + %4 = bitcast %struct.point948* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point948* %2 to i8* + %6 = bitcast %struct.point948* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point948* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo949([2 x i64] %0) #0 { + %2 = alloca %struct.point949, align 4 + %3 = alloca %struct.point949, align 4 + %4 = bitcast %struct.point949* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point949* %2 to i8* + %6 = bitcast %struct.point949* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point949* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef %1) #0 { + %3 = bitcast %struct.point950* %0 to i8* + %4 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef %1) #0 { + %3 = bitcast %struct.point951* %0 to i8* + %4 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo952([2 x i64] %0) #0 { + %2 = alloca %struct.point952, align 4 + %3 = alloca %struct.point952, align 4 + %4 = bitcast %struct.point952* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point952* %2 to i8* + %6 = bitcast %struct.point952* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point952* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo953([2 x i64] %0) #0 { + %2 = alloca %struct.point953, align 4 + %3 = alloca %struct.point953, align 4 + %4 = bitcast %struct.point953* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point953* %2 to i8* + %6 = bitcast %struct.point953* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point953* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo954([2 x i64] %0) #0 { + %2 = alloca %struct.point954, align 4 + %3 = alloca %struct.point954, align 4 + %4 = bitcast %struct.point954* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point954* %2 to i8* + %6 = bitcast %struct.point954* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point954* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef %1) #0 { + %3 = bitcast %struct.point955* %0 to i8* + %4 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef %1) #0 { + %3 = bitcast %struct.point956* %0 to i8* + %4 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo957([2 x i64] %0) #0 { + %2 = alloca %struct.point957, align 4 + %3 = alloca %struct.point957, align 4 + %4 = bitcast %struct.point957* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point957* %2 to i8* + %6 = bitcast %struct.point957* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point957* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef %1) #0 { + %3 = bitcast %struct.point958* %0 to i8* + %4 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef %1) #0 { + %3 = bitcast %struct.point959* %0 to i8* + %4 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef %1) #0 { + %3 = bitcast %struct.point960* %0 to i8* + %4 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef %1) #0 { + %3 = bitcast %struct.point961* %0 to i8* + %4 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo962([2 x i64] %0) #0 { + %2 = alloca %struct.point962, align 4 + %3 = alloca %struct.point962, align 4 + %4 = bitcast %struct.point962* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point962* %2 to i8* + %6 = bitcast %struct.point962* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point962* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef %1) #0 { + %3 = bitcast %struct.point963* %0 to i8* + %4 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef %1) #0 { + %3 = bitcast %struct.point964* %0 to i8* + %4 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef %1) #0 { + %3 = bitcast %struct.point965* %0 to i8* + %4 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef %1) #0 { + %3 = bitcast %struct.point966* %0 to i8* + %4 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo967([2 x i64] %0) #0 { + %2 = alloca %struct.point967, align 4 + %3 = alloca %struct.point967, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point967* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point967* %2 to i8* + %9 = bitcast %struct.point967* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point967* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo968([2 x i64] %0) #0 { + %2 = alloca %struct.point968, align 4 + %3 = alloca %struct.point968, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point968* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point968* %2 to i8* + %9 = bitcast %struct.point968* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point968* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo969([2 x i64] %0) #0 { + %2 = alloca %struct.point969, align 4 + %3 = alloca %struct.point969, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point969* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point969* %2 to i8* + %9 = bitcast %struct.point969* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point969* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo970([2 x i64] %0) #0 { + %2 = alloca %struct.point970, align 4 + %3 = alloca %struct.point970, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point970* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point970* %2 to i8* + %9 = bitcast %struct.point970* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point970* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo971([2 x i64] %0) #0 { + %2 = alloca %struct.point971, align 4 + %3 = alloca %struct.point971, align 4 + %4 = bitcast %struct.point971* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point971* %2 to i8* + %6 = bitcast %struct.point971* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point971* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo972([2 x i64] %0) #0 { + %2 = alloca %struct.point972, align 4 + %3 = alloca %struct.point972, align 4 + %4 = bitcast %struct.point972* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point972* %2 to i8* + %6 = bitcast %struct.point972* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point972* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo973([2 x i64] %0) #0 { + %2 = alloca %struct.point973, align 4 + %3 = alloca %struct.point973, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point973* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point973* %2 to i8* + %9 = bitcast %struct.point973* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point973* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo974([2 x i64] %0) #0 { + %2 = alloca %struct.point974, align 4 + %3 = alloca %struct.point974, align 4 + %4 = bitcast %struct.point974* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point974* %2 to i8* + %6 = bitcast %struct.point974* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point974* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo975([2 x i64] %0) #0 { + %2 = alloca %struct.point975, align 4 + %3 = alloca %struct.point975, align 4 + %4 = bitcast %struct.point975* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point975* %2 to i8* + %6 = bitcast %struct.point975* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point975* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo976([2 x i64] %0) #0 { + %2 = alloca %struct.point976, align 4 + %3 = alloca %struct.point976, align 4 + %4 = bitcast %struct.point976* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point976* %2 to i8* + %6 = bitcast %struct.point976* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point976* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo977([2 x i64] %0) #0 { + %2 = alloca %struct.point977, align 4 + %3 = alloca %struct.point977, align 4 + %4 = bitcast %struct.point977* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point977* %2 to i8* + %6 = bitcast %struct.point977* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point977* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo978([2 x i64] %0) #0 { + %2 = alloca %struct.point978, align 4 + %3 = alloca %struct.point978, align 4 + %4 = bitcast %struct.point978* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point978* %2 to i8* + %6 = bitcast %struct.point978* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point978* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef %1) #0 { + %3 = bitcast %struct.point979* %0 to i8* + %4 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef %1) #0 { + %3 = bitcast %struct.point980* %0 to i8* + %4 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef %1) #0 { + %3 = bitcast %struct.point981* %0 to i8* + %4 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef %1) #0 { + %3 = bitcast %struct.point982* %0 to i8* + %4 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo983([2 x i64] %0) #0 { + %2 = alloca %struct.point983, align 4 + %3 = alloca %struct.point983, align 4 + %4 = bitcast %struct.point983* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point983* %2 to i8* + %6 = bitcast %struct.point983* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point983* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef %1) #0 { + %3 = bitcast %struct.point984* %0 to i8* + %4 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef %1) #0 { + %3 = bitcast %struct.point985* %0 to i8* + %4 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef %1) #0 { + %3 = bitcast %struct.point986* %0 to i8* + %4 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef %1) #0 { + %3 = bitcast %struct.point987* %0 to i8* + %4 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo988([2 x i64] %0) #0 { + %2 = alloca %struct.point988, align 4 + %3 = alloca %struct.point988, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point988* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point988* %2 to i8* + %9 = bitcast %struct.point988* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point988* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo989([2 x i64] %0) #0 { + %2 = alloca %struct.point989, align 4 + %3 = alloca %struct.point989, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point989* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point989* %2 to i8* + %9 = bitcast %struct.point989* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point989* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo990([2 x i64] %0) #0 { + %2 = alloca %struct.point990, align 4 + %3 = alloca %struct.point990, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point990* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point990* %2 to i8* + %9 = bitcast %struct.point990* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point990* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo991([2 x i64] %0) #0 { + %2 = alloca %struct.point991, align 4 + %3 = alloca %struct.point991, align 4 + %4 = bitcast %struct.point991* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point991* %2 to i8* + %6 = bitcast %struct.point991* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point991* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo992([2 x i64] %0) #0 { + %2 = alloca %struct.point992, align 4 + %3 = alloca %struct.point992, align 4 + %4 = bitcast %struct.point992* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point992* %2 to i8* + %6 = bitcast %struct.point992* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point992* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo993([2 x i64] %0) #0 { + %2 = alloca %struct.point993, align 4 + %3 = alloca %struct.point993, align 4 + %4 = bitcast %struct.point993* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point993* %2 to i8* + %6 = bitcast %struct.point993* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point993* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo994([2 x i64] %0) #0 { + %2 = alloca %struct.point994, align 4 + %3 = alloca %struct.point994, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point994* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point994* %2 to i8* + %9 = bitcast %struct.point994* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point994* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo995([2 x i64] %0) #0 { + %2 = alloca %struct.point995, align 4 + %3 = alloca %struct.point995, align 4 + %4 = bitcast %struct.point995* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point995* %2 to i8* + %6 = bitcast %struct.point995* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point995* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo996([2 x i64] %0) #0 { + %2 = alloca %struct.point996, align 4 + %3 = alloca %struct.point996, align 4 + %4 = bitcast %struct.point996* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point996* %2 to i8* + %6 = bitcast %struct.point996* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point996* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo997([2 x i64] %0) #0 { + %2 = alloca %struct.point997, align 4 + %3 = alloca %struct.point997, align 4 + %4 = bitcast %struct.point997* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point997* %2 to i8* + %6 = bitcast %struct.point997* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point997* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo998([2 x i64] %0) #0 { + %2 = alloca %struct.point998, align 4 + %3 = alloca %struct.point998, align 4 + %4 = bitcast %struct.point998* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point998* %2 to i8* + %6 = bitcast %struct.point998* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point998* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo999([2 x i64] %0) #0 { + %2 = alloca %struct.point999, align 4 + %3 = alloca %struct.point999, align 4 + %4 = bitcast %struct.point999* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point999* %2 to i8* + %6 = bitcast %struct.point999* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point999* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef %1) #0 { + %3 = bitcast %struct.point1000* %0 to i8* + %4 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef %1) #0 { + %3 = bitcast %struct.point1001* %0 to i8* + %4 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef %1) #0 { + %3 = bitcast %struct.point1002* %0 to i8* + %4 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef %1) #0 { + %3 = bitcast %struct.point1003* %0 to i8* + %4 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1004([2 x i64] %0) #0 { + %2 = alloca %struct.point1004, align 4 + %3 = alloca %struct.point1004, align 4 + %4 = bitcast %struct.point1004* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1004* %2 to i8* + %6 = bitcast %struct.point1004* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1004* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef %1) #0 { + %3 = bitcast %struct.point1005* %0 to i8* + %4 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef %1) #0 { + %3 = bitcast %struct.point1006* %0 to i8* + %4 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef %1) #0 { + %3 = bitcast %struct.point1007* %0 to i8* + %4 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef %1) #0 { + %3 = bitcast %struct.point1008* %0 to i8* + %4 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1009([2 x i64] %0) #0 { + %2 = alloca %struct.point1009, align 4 + %3 = alloca %struct.point1009, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1009* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1009* %2 to i8* + %9 = bitcast %struct.point1009* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1009* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1010([2 x i64] %0) #0 { + %2 = alloca %struct.point1010, align 4 + %3 = alloca %struct.point1010, align 4 + %4 = bitcast %struct.point1010* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1010* %2 to i8* + %6 = bitcast %struct.point1010* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1010* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1011([2 x i64] %0) #0 { + %2 = alloca %struct.point1011, align 4 + %3 = alloca %struct.point1011, align 4 + %4 = bitcast %struct.point1011* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1011* %2 to i8* + %6 = bitcast %struct.point1011* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1011* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1012([2 x i64] %0) #0 { + %2 = alloca %struct.point1012, align 4 + %3 = alloca %struct.point1012, align 4 + %4 = bitcast %struct.point1012* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1012* %2 to i8* + %6 = bitcast %struct.point1012* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1012* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef %1) #0 { + %3 = bitcast %struct.point1013* %0 to i8* + %4 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef %1) #0 { + %3 = bitcast %struct.point1014* %0 to i8* + %4 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1015([2 x i64] %0) #0 { + %2 = alloca %struct.point1015, align 4 + %3 = alloca %struct.point1015, align 4 + %4 = bitcast %struct.point1015* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1015* %2 to i8* + %6 = bitcast %struct.point1015* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1015* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1016([2 x i64] %0) #0 { + %2 = alloca %struct.point1016, align 4 + %3 = alloca %struct.point1016, align 4 + %4 = bitcast %struct.point1016* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1016* %2 to i8* + %6 = bitcast %struct.point1016* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1016* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1017([2 x i64] %0) #0 { + %2 = alloca %struct.point1017, align 4 + %3 = alloca %struct.point1017, align 4 + %4 = bitcast %struct.point1017* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1017* %2 to i8* + %6 = bitcast %struct.point1017* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1017* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef %1) #0 { + %3 = bitcast %struct.point1018* %0 to i8* + %4 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef %1) #0 { + %3 = bitcast %struct.point1019* %0 to i8* + %4 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1020([2 x i64] %0) #0 { + %2 = alloca %struct.point1020, align 4 + %3 = alloca %struct.point1020, align 4 + %4 = bitcast %struct.point1020* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1020* %2 to i8* + %6 = bitcast %struct.point1020* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1020* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef %1) #0 { + %3 = bitcast %struct.point1021* %0 to i8* + %4 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef %1) #0 { + %3 = bitcast %struct.point1022* %0 to i8* + %4 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef %1) #0 { + %3 = bitcast %struct.point1023* %0 to i8* + %4 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef %1) #0 { + %3 = bitcast %struct.point1024* %0 to i8* + %4 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1025([2 x i64] %0) #0 { + %2 = alloca %struct.point1025, align 4 + %3 = alloca %struct.point1025, align 4 + %4 = bitcast %struct.point1025* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1025* %2 to i8* + %6 = bitcast %struct.point1025* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1025* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef %1) #0 { + %3 = bitcast %struct.point1026* %0 to i8* + %4 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef %1) #0 { + %3 = bitcast %struct.point1027* %0 to i8* + %4 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef %1) #0 { + %3 = bitcast %struct.point1028* %0 to i8* + %4 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef %1) #0 { + %3 = bitcast %struct.point1029* %0 to i8* + %4 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1030([2 x i64] %0) #0 { + %2 = alloca %struct.point1030, align 4 + %3 = alloca %struct.point1030, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1030* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1030* %2 to i8* + %9 = bitcast %struct.point1030* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1030* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1031([2 x i64] %0) #0 { + %2 = alloca %struct.point1031, align 4 + %3 = alloca %struct.point1031, align 4 + %4 = bitcast %struct.point1031* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1031* %2 to i8* + %6 = bitcast %struct.point1031* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1031* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1032([2 x i64] %0) #0 { + %2 = alloca %struct.point1032, align 4 + %3 = alloca %struct.point1032, align 4 + %4 = bitcast %struct.point1032* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1032* %2 to i8* + %6 = bitcast %struct.point1032* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1032* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1033([2 x i64] %0) #0 { + %2 = alloca %struct.point1033, align 4 + %3 = alloca %struct.point1033, align 4 + %4 = bitcast %struct.point1033* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1033* %2 to i8* + %6 = bitcast %struct.point1033* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1033* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef %1) #0 { + %3 = bitcast %struct.point1034* %0 to i8* + %4 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef %1) #0 { + %3 = bitcast %struct.point1035* %0 to i8* + %4 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1036([2 x i64] %0) #0 { + %2 = alloca %struct.point1036, align 4 + %3 = alloca %struct.point1036, align 4 + %4 = bitcast %struct.point1036* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1036* %2 to i8* + %6 = bitcast %struct.point1036* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1036* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1037([2 x i64] %0) #0 { + %2 = alloca %struct.point1037, align 4 + %3 = alloca %struct.point1037, align 4 + %4 = bitcast %struct.point1037* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1037* %2 to i8* + %6 = bitcast %struct.point1037* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1037* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1038([2 x i64] %0) #0 { + %2 = alloca %struct.point1038, align 4 + %3 = alloca %struct.point1038, align 4 + %4 = bitcast %struct.point1038* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1038* %2 to i8* + %6 = bitcast %struct.point1038* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1038* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef %1) #0 { + %3 = bitcast %struct.point1039* %0 to i8* + %4 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef %1) #0 { + %3 = bitcast %struct.point1040* %0 to i8* + %4 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1041([2 x i64] %0) #0 { + %2 = alloca %struct.point1041, align 4 + %3 = alloca %struct.point1041, align 4 + %4 = bitcast %struct.point1041* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1041* %2 to i8* + %6 = bitcast %struct.point1041* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1041* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef %1) #0 { + %3 = bitcast %struct.point1042* %0 to i8* + %4 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef %1) #0 { + %3 = bitcast %struct.point1043* %0 to i8* + %4 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef %1) #0 { + %3 = bitcast %struct.point1044* %0 to i8* + %4 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef %1) #0 { + %3 = bitcast %struct.point1045* %0 to i8* + %4 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo1046([2 x i64] %0) #0 { + %2 = alloca %struct.point1046, align 4 + %3 = alloca %struct.point1046, align 4 + %4 = bitcast %struct.point1046* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1046* %2 to i8* + %6 = bitcast %struct.point1046* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1046* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef %1) #0 { + %3 = bitcast %struct.point1047* %0 to i8* + %4 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef %1) #0 { + %3 = bitcast %struct.point1048* %0 to i8* + %4 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef %1) #0 { + %3 = bitcast %struct.point1049* %0 to i8* + %4 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef %1) #0 { + %3 = bitcast %struct.point1050* %0 to i8* + %4 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/arm64/struct_uintptr.ll b/internal/cabi/_testdata/arch/arm64/struct_uintptr.ll new file mode 100644 index 00000000..4ddf4007 --- /dev/null +++ b/internal/cabi/_testdata/arch/arm64/struct_uintptr.ll @@ -0,0 +1,219 @@ +; ModuleID = '../../wrap/struct_uintptr.c' +source_filename = "../../wrap/struct_uintptr.c" +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" +target triple = "aarch64-unknown-linux-gnu" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = inttoptr i64 %0 to i8* + store i8* %5, i8** %4, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 8 + %10 = ptrtoint i8* %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+neon,+v8a" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 8, !"branch-target-enforcement", i32 0} +!2 = !{i32 8, !"sign-return-address", i32 0} +!3 = !{i32 8, !"sign-return-address-all", i32 0} +!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!5 = !{i32 7, !"PIC Level", i32 2} +!6 = !{i32 7, !"PIE Level", i32 2} +!7 = !{i32 7, !"uwtable", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 1} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_float32.ll b/internal/cabi/_testdata/arch/armv6/array_float32.ll new file mode 100644 index 00000000..31011f75 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_float32.ll @@ -0,0 +1,269 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array1 @demo1(%struct.array1 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + store %struct.array1 %0, %struct.array1* %3, align 4 + %4 = bitcast %struct.array1* %2 to i8* + %5 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 4, i1 false) + %6 = load %struct.array1, %struct.array1* %2, align 4 + ret %struct.array1 %6 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array2 @demo2(%struct.array2 %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + store %struct.array2 %0, %struct.array2* %3, align 4 + %4 = bitcast %struct.array2* %2 to i8* + %5 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 8, i1 false) + %6 = load %struct.array2, %struct.array2* %2, align 4 + ret %struct.array2 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array3 @demo3(%struct.array3 %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + store %struct.array3 %0, %struct.array3* %3, align 4 + %4 = bitcast %struct.array3* %2 to i8* + %5 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 12, i1 false) + %6 = load %struct.array3, %struct.array3* %2, align 4 + ret %struct.array3 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array4 @demo4(%struct.array4 %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + store %struct.array4 %0, %struct.array4* %3, align 4 + %4 = bitcast %struct.array4* %2 to i8* + %5 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 16, i1 false) + %6 = load %struct.array4, %struct.array4* %2, align 4 + ret %struct.array4 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array5, align 4 + %4 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + %5 = bitcast [5 x float]* %4 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %5, align 4 + %6 = bitcast %struct.array5* %0 to i8* + %7 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.array6, align 4 + %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + %5 = bitcast [6 x float]* %4 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %5, align 4 + %6 = bitcast %struct.array6* %0 to i8* + %7 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.array7, align 4 + %4 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + %5 = bitcast [7 x float]* %4 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %5, align 4 + %6 = bitcast %struct.array7* %0 to i8* + %7 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array8, align 4 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x float]* %4 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %5, align 4 + %6 = bitcast %struct.array8* %0 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.array9, align 4 + %4 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + %5 = bitcast [9 x float]* %4 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %5, align 4 + %6 = bitcast %struct.array9* %0 to i8* + %7 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = bitcast [10 x float]* %4 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %5, align 4 + %6 = bitcast %struct.array10* %0 to i8* + %7 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, [11 x i32] %1) #0 { + %3 = alloca %struct.array11, align 4 + %4 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + %5 = bitcast [11 x float]* %4 to [11 x i32]* + store [11 x i32] %1, [11 x i32]* %5, align 4 + %6 = bitcast %struct.array11* %0 to i8* + %7 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, [12 x i32] %1) #0 { + %3 = alloca %struct.array12, align 4 + %4 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + %5 = bitcast [12 x float]* %4 to [12 x i32]* + store [12 x i32] %1, [12 x i32]* %5, align 4 + %6 = bitcast %struct.array12* %0 to i8* + %7 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, [13 x i32] %1) #0 { + %3 = alloca %struct.array13, align 4 + %4 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + %5 = bitcast [13 x float]* %4 to [13 x i32]* + store [13 x i32] %1, [13 x i32]* %5, align 4 + %6 = bitcast %struct.array13* %0 to i8* + %7 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, [14 x i32] %1) #0 { + %3 = alloca %struct.array14, align 4 + %4 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + %5 = bitcast [14 x float]* %4 to [14 x i32]* + store [14 x i32] %1, [14 x i32]* %5, align 4 + %6 = bitcast %struct.array14* %0 to i8* + %7 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, [15 x i32] %1) #0 { + %3 = alloca %struct.array15, align 4 + %4 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + %5 = bitcast [15 x float]* %4 to [15 x i32]* + store [15 x i32] %1, [15 x i32]* %5, align 4 + %6 = bitcast %struct.array15* %0 to i8* + %7 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, [16 x i32] %1) #0 { + %3 = alloca %struct.array16, align 4 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x float]* %4 to [16 x i32]* + store [16 x i32] %1, [16 x i32]* %5, align 4 + %6 = bitcast %struct.array16* %0 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_float64.ll b/internal/cabi/_testdata/arch/armv6/array_float64.ll new file mode 100644 index 00000000..f1cb5710 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_float64.ll @@ -0,0 +1,237 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array1 @demo1(%struct.array1 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + store %struct.array1 %0, %struct.array1* %3, align 8 + %4 = bitcast %struct.array1* %2 to i8* + %5 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 8, i1 false) + %6 = load %struct.array1, %struct.array1* %2, align 8 + ret %struct.array1 %6 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array2 @demo2(%struct.array2 %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + store %struct.array2 %0, %struct.array2* %3, align 8 + %4 = bitcast %struct.array2* %2 to i8* + %5 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 16, i1 false) + %6 = load %struct.array2, %struct.array2* %2, align 8 + ret %struct.array2 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array3 @demo3(%struct.array3 %0) #0 { + %2 = alloca %struct.array3, align 8 + %3 = alloca %struct.array3, align 8 + store %struct.array3 %0, %struct.array3* %3, align 8 + %4 = bitcast %struct.array3* %2 to i8* + %5 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 24, i1 false) + %6 = load %struct.array3, %struct.array3* %2, align 8 + ret %struct.array3 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.array4 @demo4(%struct.array4 %0) #0 { + %2 = alloca %struct.array4, align 8 + %3 = alloca %struct.array4, align 8 + store %struct.array4 %0, %struct.array4* %3, align 8 + %4 = bitcast %struct.array4* %2 to i8* + %5 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 32, i1 false) + %6 = load %struct.array4, %struct.array4* %2, align 8 + ret %struct.array4 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, [5 x i64] %1) #0 { + %3 = alloca %struct.array5, align 8 + %4 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + %5 = bitcast [5 x double]* %4 to [5 x i64]* + store [5 x i64] %1, [5 x i64]* %5, align 8 + %6 = bitcast %struct.array5* %0 to i8* + %7 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, [6 x i64] %1) #0 { + %3 = alloca %struct.array6, align 8 + %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + %5 = bitcast [6 x double]* %4 to [6 x i64]* + store [6 x i64] %1, [6 x i64]* %5, align 8 + %6 = bitcast %struct.array6* %0 to i8* + %7 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, [7 x i64] %1) #0 { + %3 = alloca %struct.array7, align 8 + %4 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + %5 = bitcast [7 x double]* %4 to [7 x i64]* + store [7 x i64] %1, [7 x i64]* %5, align 8 + %6 = bitcast %struct.array7* %0 to i8* + %7 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, [8 x i64] %1) #0 { + %3 = alloca %struct.array8, align 8 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x double]* %4 to [8 x i64]* + store [8 x i64] %1, [8 x i64]* %5, align 8 + %6 = bitcast %struct.array8* %0 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_int16.ll b/internal/cabi/_testdata/arch/armv6/array_int16.ll new file mode 100644 index 00000000..47aab250 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_int16.ll @@ -0,0 +1,323 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define dso_local i16 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca [1 x i32], align 4 + %5 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %6 = bitcast [1 x i16]* %5 to i8* + %7 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 2, i1 false) + %8 = bitcast %struct.array1* %2 to i8* + %9 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 2, i1 false) + %10 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %11 = bitcast [1 x i16]* %10 to i16* + %12 = load i16, i16* %11, align 2 + ret i16 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2([1 x i32] %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i16]* %4 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %5, align 2 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i16]* %8 to i32* + %10 = load i32, i32* %9, align 2 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array3, align 2 + %4 = alloca [2 x i32], align 4 + %5 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %6 = bitcast [3 x i16]* %5 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.array3* %0 to i8* + %9 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array4, align 2 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %5, align 2 + %6 = bitcast %struct.array4* %0 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array5, align 2 + %4 = alloca [3 x i32], align 4 + %5 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %6 = bitcast [5 x i16]* %5 to i8* + %7 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 10, i1 false) + %8 = bitcast %struct.array5* %0 to i8* + %9 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array6, align 2 + %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + %5 = bitcast [6 x i16]* %4 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %5, align 2 + %6 = bitcast %struct.array6* %0 to i8* + %7 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 2 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array7, align 2 + %4 = alloca [4 x i32], align 4 + %5 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %6 = bitcast [7 x i16]* %5 to i8* + %7 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 14, i1 false) + %8 = bitcast %struct.array7* %0 to i8* + %9 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 2 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array8, align 2 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i16]* %4 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %5, align 2 + %6 = bitcast %struct.array8* %0 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array9, align 2 + %4 = alloca [5 x i32], align 4 + %5 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %6 = bitcast [9 x i16]* %5 to i8* + %7 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 18, i1 false) + %8 = bitcast %struct.array9* %0 to i8* + %9 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array10, align 2 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = bitcast [10 x i16]* %4 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %5, align 2 + %6 = bitcast %struct.array10* %0 to i8* + %7 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.array11, align 2 + %4 = alloca [6 x i32], align 4 + %5 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + store [6 x i32] %1, [6 x i32]* %4, align 4 + %6 = bitcast [11 x i16]* %5 to i8* + %7 = bitcast [6 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 22, i1 false) + %8 = bitcast %struct.array11* %0 to i8* + %9 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.array12, align 2 + %4 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + %5 = bitcast [12 x i16]* %4 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %5, align 2 + %6 = bitcast %struct.array12* %0 to i8* + %7 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.array13, align 2 + %4 = alloca [7 x i32], align 4 + %5 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + store [7 x i32] %1, [7 x i32]* %4, align 4 + %6 = bitcast [13 x i16]* %5 to i8* + %7 = bitcast [7 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 26, i1 false) + %8 = bitcast %struct.array13* %0 to i8* + %9 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.array14, align 2 + %4 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + %5 = bitcast [14 x i16]* %4 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %5, align 2 + %6 = bitcast %struct.array14* %0 to i8* + %7 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array15, align 2 + %4 = alloca [8 x i32], align 4 + %5 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + store [8 x i32] %1, [8 x i32]* %4, align 4 + %6 = bitcast [15 x i16]* %5 to i8* + %7 = bitcast [8 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 30, i1 false) + %8 = bitcast %struct.array15* %0 to i8* + %9 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array16, align 2 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i16]* %4 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %5, align 2 + %6 = bitcast %struct.array16* %0 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.array17, align 2 + %4 = alloca [9 x i32], align 4 + %5 = getelementptr inbounds %struct.array17, %struct.array17* %3, i32 0, i32 0 + store [9 x i32] %1, [9 x i32]* %4, align 4 + %6 = bitcast [17 x i16]* %5 to i8* + %7 = bitcast [9 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 34, i1 false) + %8 = bitcast %struct.array17* %0 to i8* + %9 = bitcast %struct.array17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.array18, align 2 + %4 = getelementptr inbounds %struct.array18, %struct.array18* %3, i32 0, i32 0 + %5 = bitcast [18 x i16]* %4 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %5, align 2 + %6 = bitcast %struct.array18* %0 to i8* + %7 = bitcast %struct.array18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.array19, align 2 + %4 = alloca [10 x i32], align 4 + %5 = getelementptr inbounds %struct.array19, %struct.array19* %3, i32 0, i32 0 + store [10 x i32] %1, [10 x i32]* %4, align 4 + %6 = bitcast [19 x i16]* %5 to i8* + %7 = bitcast [10 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 38, i1 false) + %8 = bitcast %struct.array19* %0 to i8* + %9 = bitcast %struct.array19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.array20, align 2 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = bitcast [20 x i16]* %4 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %5, align 2 + %6 = bitcast %struct.array20* %0 to i8* + %7 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_int32.ll b/internal/cabi/_testdata/arch/armv6/array_int32.ll new file mode 100644 index 00000000..4592e84c --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_int32.ll @@ -0,0 +1,257 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %5 = bitcast %struct.array1* %2 to i8* + %6 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + %7 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %8 = bitcast [1 x i32]* %7 to i32* + %9 = load i32, i32* %8, align 4 + ret i32 %9 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array3, align 4 + %4 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array5, align 4 + %4 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.array6, align 4 + %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store [6 x i32] %1, [6 x i32]* %4, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.array7, align 4 + %4 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [7 x i32] %1, [7 x i32]* %4, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array8, align 4 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + store [8 x i32] %1, [8 x i32]* %4, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.array9, align 4 + %4 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + store [9 x i32] %1, [9 x i32]* %4, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + store [10 x i32] %1, [10 x i32]* %4, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, [11 x i32] %1) #0 { + %3 = alloca %struct.array11, align 4 + %4 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + store [11 x i32] %1, [11 x i32]* %4, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, [12 x i32] %1) #0 { + %3 = alloca %struct.array12, align 4 + %4 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + store [12 x i32] %1, [12 x i32]* %4, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, [13 x i32] %1) #0 { + %3 = alloca %struct.array13, align 4 + %4 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + store [13 x i32] %1, [13 x i32]* %4, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, [14 x i32] %1) #0 { + %3 = alloca %struct.array14, align 4 + %4 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + store [14 x i32] %1, [14 x i32]* %4, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, [15 x i32] %1) #0 { + %3 = alloca %struct.array15, align 4 + %4 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + store [15 x i32] %1, [15 x i32]* %4, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, [16 x i32] %1) #0 { + %3 = alloca %struct.array16, align 4 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + store [16 x i32] %1, [16 x i32]* %4, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_int64.ll b/internal/cabi/_testdata/arch/armv6/array_int64.ll new file mode 100644 index 00000000..8d0b3402 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_int64.ll @@ -0,0 +1,229 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 8 %0, [1 x i64] %1) #0 { + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store [1 x i64] %1, [1 x i64]* %4, align 8 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, [3 x i64] %1) #0 { + %3 = alloca %struct.array3, align 8 + %4 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [3 x i64] %1, [3 x i64]* %4, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, [4 x i64] %1) #0 { + %3 = alloca %struct.array4, align 8 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store [4 x i64] %1, [4 x i64]* %4, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, [5 x i64] %1) #0 { + %3 = alloca %struct.array5, align 8 + %4 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [5 x i64] %1, [5 x i64]* %4, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, [6 x i64] %1) #0 { + %3 = alloca %struct.array6, align 8 + %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store [6 x i64] %1, [6 x i64]* %4, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, [7 x i64] %1) #0 { + %3 = alloca %struct.array7, align 8 + %4 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [7 x i64] %1, [7 x i64]* %4, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, [8 x i64] %1) #0 { + %3 = alloca %struct.array8, align 8 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + store [8 x i64] %1, [8 x i64]* %4, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_int8.ll b/internal/cabi/_testdata/arch/armv6/array_int8.ll new file mode 100644 index 00000000..650cdb0f --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_int8.ll @@ -0,0 +1,349 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define dso_local i8 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca [1 x i32], align 4 + %5 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %6 = bitcast [1 x i8]* %5 to i8* + %7 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 1, i1 false) + %8 = bitcast %struct.array1* %2 to i8* + %9 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 1, i1 false) + %10 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %11 = bitcast [1 x i8]* %10 to i8* + %12 = load i8, i8* %11, align 1 + ret i8 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i16 @demo2([1 x i32] %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca [1 x i32], align 4 + %5 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %6 = bitcast [2 x i8]* %5 to i8* + %7 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 2, i1 false) + %8 = bitcast %struct.array2* %2 to i8* + %9 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 2, i1 false) + %10 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %11 = bitcast [2 x i8]* %10 to i16* + %12 = load i16, i16* %11, align 1 + ret i16 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3([1 x i32] %0) #0 { + %2 = alloca %struct.array3, align 1 + %3 = alloca %struct.array3, align 1 + %4 = alloca [1 x i32], align 4 + %5 = alloca i32, align 4 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 4 %8, i32 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %9, i8* align 1 %10, i32 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i32* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 1 %13, i32 3, i1 false) + %14 = load i32, i32* %5, align 4 + ret i32 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4([1 x i32] %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8]* %4 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %5, align 1 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i8]* %8 to i32* + %10 = load i32, i32* %9, align 1 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array5, align 1 + %4 = alloca [2 x i32], align 4 + %5 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %6 = bitcast [5 x i8]* %5 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 5, i1 false) + %8 = bitcast %struct.array5* %0 to i8* + %9 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array6, align 1 + %4 = alloca [2 x i32], align 4 + %5 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %6 = bitcast [6 x i8]* %5 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 6, i1 false) + %8 = bitcast %struct.array6* %0 to i8* + %9 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array7, align 1 + %4 = alloca [2 x i32], align 4 + %5 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %6 = bitcast [7 x i8]* %5 to i8* + %7 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 7, i1 false) + %8 = bitcast %struct.array7* %0 to i8* + %9 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 7, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %5, align 1 + %6 = bitcast %struct.array8* %0 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array9, align 1 + %4 = alloca [3 x i32], align 4 + %5 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %6 = bitcast [9 x i8]* %5 to i8* + %7 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 9, i1 false) + %8 = bitcast %struct.array9* %0 to i8* + %9 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array10, align 1 + %4 = alloca [3 x i32], align 4 + %5 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %6 = bitcast [10 x i8]* %5 to i8* + %7 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 10, i1 false) + %8 = bitcast %struct.array10* %0 to i8* + %9 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array11, align 1 + %4 = alloca [3 x i32], align 4 + %5 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %6 = bitcast [11 x i8]* %5 to i8* + %7 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 11, i1 false) + %8 = bitcast %struct.array11* %0 to i8* + %9 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array12, align 1 + %4 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + %5 = bitcast [12 x i8]* %4 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %5, align 1 + %6 = bitcast %struct.array12* %0 to i8* + %7 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array13, align 1 + %4 = alloca [4 x i32], align 4 + %5 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %6 = bitcast [13 x i8]* %5 to i8* + %7 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 13, i1 false) + %8 = bitcast %struct.array13* %0 to i8* + %9 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array14, align 1 + %4 = alloca [4 x i32], align 4 + %5 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %6 = bitcast [14 x i8]* %5 to i8* + %7 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 14, i1 false) + %8 = bitcast %struct.array14* %0 to i8* + %9 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array15, align 1 + %4 = alloca [4 x i32], align 4 + %5 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %6 = bitcast [15 x i8]* %5 to i8* + %7 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 15, i1 false) + %8 = bitcast %struct.array15* %0 to i8* + %9 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array16, align 1 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i8]* %4 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %5, align 1 + %6 = bitcast %struct.array16* %0 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array17, align 1 + %4 = alloca [5 x i32], align 4 + %5 = getelementptr inbounds %struct.array17, %struct.array17* %3, i32 0, i32 0 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %6 = bitcast [17 x i8]* %5 to i8* + %7 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 17, i1 false) + %8 = bitcast %struct.array17* %0 to i8* + %9 = bitcast %struct.array17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array18, align 1 + %4 = alloca [5 x i32], align 4 + %5 = getelementptr inbounds %struct.array18, %struct.array18* %3, i32 0, i32 0 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %6 = bitcast [18 x i8]* %5 to i8* + %7 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 18, i1 false) + %8 = bitcast %struct.array18* %0 to i8* + %9 = bitcast %struct.array18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array19, align 1 + %4 = alloca [5 x i32], align 4 + %5 = getelementptr inbounds %struct.array19, %struct.array19* %3, i32 0, i32 0 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %6 = bitcast [19 x i8]* %5 to i8* + %7 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 19, i1 false) + %8 = bitcast %struct.array19* %0 to i8* + %9 = bitcast %struct.array19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array20, align 1 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = bitcast [20 x i8]* %4 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %5, align 1 + %6 = bitcast %struct.array20* %0 to i8* + %7 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_pointer.ll b/internal/cabi/_testdata/arch/armv6/array_pointer.ll new file mode 100644 index 00000000..a2339857 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_pointer.ll @@ -0,0 +1,273 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array2* %0 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array3, align 4 + %4 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + %5 = bitcast [3 x i8*]* %4 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %5, align 4 + %6 = bitcast %struct.array3* %0 to i8* + %7 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8*]* %4 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %5, align 4 + %6 = bitcast %struct.array4* %0 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array5, align 4 + %4 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + %5 = bitcast [5 x i8*]* %4 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %5, align 4 + %6 = bitcast %struct.array5* %0 to i8* + %7 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.array6, align 4 + %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + %5 = bitcast [6 x i8*]* %4 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %5, align 4 + %6 = bitcast %struct.array6* %0 to i8* + %7 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.array7, align 4 + %4 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + %5 = bitcast [7 x i8*]* %4 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %5, align 4 + %6 = bitcast %struct.array7* %0 to i8* + %7 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array8, align 4 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8*]* %4 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %5, align 4 + %6 = bitcast %struct.array8* %0 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.array9, align 4 + %4 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + %5 = bitcast [9 x i8*]* %4 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %5, align 4 + %6 = bitcast %struct.array9* %0 to i8* + %7 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = bitcast [10 x i8*]* %4 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %5, align 4 + %6 = bitcast %struct.array10* %0 to i8* + %7 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, [11 x i32] %1) #0 { + %3 = alloca %struct.array11, align 4 + %4 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + %5 = bitcast [11 x i8*]* %4 to [11 x i32]* + store [11 x i32] %1, [11 x i32]* %5, align 4 + %6 = bitcast %struct.array11* %0 to i8* + %7 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, [12 x i32] %1) #0 { + %3 = alloca %struct.array12, align 4 + %4 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + %5 = bitcast [12 x i8*]* %4 to [12 x i32]* + store [12 x i32] %1, [12 x i32]* %5, align 4 + %6 = bitcast %struct.array12* %0 to i8* + %7 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, [13 x i32] %1) #0 { + %3 = alloca %struct.array13, align 4 + %4 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + %5 = bitcast [13 x i8*]* %4 to [13 x i32]* + store [13 x i32] %1, [13 x i32]* %5, align 4 + %6 = bitcast %struct.array13* %0 to i8* + %7 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, [14 x i32] %1) #0 { + %3 = alloca %struct.array14, align 4 + %4 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + %5 = bitcast [14 x i8*]* %4 to [14 x i32]* + store [14 x i32] %1, [14 x i32]* %5, align 4 + %6 = bitcast %struct.array14* %0 to i8* + %7 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, [15 x i32] %1) #0 { + %3 = alloca %struct.array15, align 4 + %4 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + %5 = bitcast [15 x i8*]* %4 to [15 x i32]* + store [15 x i32] %1, [15 x i32]* %5, align 4 + %6 = bitcast %struct.array15* %0 to i8* + %7 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, [16 x i32] %1) #0 { + %3 = alloca %struct.array16, align 4 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i8*]* %4 to [16 x i32]* + store [16 x i32] %1, [16 x i32]* %5, align 4 + %6 = bitcast %struct.array16* %0 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/array_uintptr.ll b/internal/cabi/_testdata/arch/armv6/array_uintptr.ll new file mode 100644 index 00000000..95ee95f2 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/array_uintptr.ll @@ -0,0 +1,273 @@ +; ModuleID = '../../wrap/array_uintptr.c' +source_filename = "../../wrap/array_uintptr.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array2* %0 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array3, align 4 + %4 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + %5 = bitcast [3 x i8*]* %4 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %5, align 4 + %6 = bitcast %struct.array3* %0 to i8* + %7 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i8*]* %4 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %5, align 4 + %6 = bitcast %struct.array4* %0 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.array5, align 4 + %4 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + %5 = bitcast [5 x i8*]* %4 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %5, align 4 + %6 = bitcast %struct.array5* %0 to i8* + %7 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.array6, align 4 + %4 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + %5 = bitcast [6 x i8*]* %4 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %5, align 4 + %6 = bitcast %struct.array6* %0 to i8* + %7 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.array7, align 4 + %4 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + %5 = bitcast [7 x i8*]* %4 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %5, align 4 + %6 = bitcast %struct.array7* %0 to i8* + %7 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array8, align 4 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8*]* %4 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %5, align 4 + %6 = bitcast %struct.array8* %0 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.array9, align 4 + %4 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + %5 = bitcast [9 x i8*]* %4 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %5, align 4 + %6 = bitcast %struct.array9* %0 to i8* + %7 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = bitcast [10 x i8*]* %4 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %5, align 4 + %6 = bitcast %struct.array10* %0 to i8* + %7 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, [11 x i32] %1) #0 { + %3 = alloca %struct.array11, align 4 + %4 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + %5 = bitcast [11 x i8*]* %4 to [11 x i32]* + store [11 x i32] %1, [11 x i32]* %5, align 4 + %6 = bitcast %struct.array11* %0 to i8* + %7 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, [12 x i32] %1) #0 { + %3 = alloca %struct.array12, align 4 + %4 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + %5 = bitcast [12 x i8*]* %4 to [12 x i32]* + store [12 x i32] %1, [12 x i32]* %5, align 4 + %6 = bitcast %struct.array12* %0 to i8* + %7 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, [13 x i32] %1) #0 { + %3 = alloca %struct.array13, align 4 + %4 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + %5 = bitcast [13 x i8*]* %4 to [13 x i32]* + store [13 x i32] %1, [13 x i32]* %5, align 4 + %6 = bitcast %struct.array13* %0 to i8* + %7 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, [14 x i32] %1) #0 { + %3 = alloca %struct.array14, align 4 + %4 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + %5 = bitcast [14 x i8*]* %4 to [14 x i32]* + store [14 x i32] %1, [14 x i32]* %5, align 4 + %6 = bitcast %struct.array14* %0 to i8* + %7 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, [15 x i32] %1) #0 { + %3 = alloca %struct.array15, align 4 + %4 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + %5 = bitcast [15 x i8*]* %4 to [15 x i32]* + store [15 x i32] %1, [15 x i32]* %5, align 4 + %6 = bitcast %struct.array15* %0 to i8* + %7 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, [16 x i32] %1) #0 { + %3 = alloca %struct.array16, align 4 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i8*]* %4 to [16 x i32]* + store [16 x i32] %1, [16 x i32]* %5, align 4 + %6 = bitcast %struct.array16* %0 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/basic.ll b/internal/cabi/_testdata/arch/armv6/basic.ll new file mode 100644 index 00000000..76d01838 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/basic.ll @@ -0,0 +1,76 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +; Function Attrs: noinline nounwind optnone +define dso_local zeroext i8 @basic_int8(i8 noundef zeroext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { + %2 = alloca i8*, align 4 + store i8* %0, i8** %2, align 4 + %3 = load i8*, i8** %2, align 4 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/composite.ll b/internal/cabi/_testdata/arch/armv6/composite.ll new file mode 100644 index 00000000..d677b6f8 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/composite.ll @@ -0,0 +1,139 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo_array10([1 x i32] %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %4, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %5, align 4 + %6 = bitcast %struct.array10* %2 to i8* + %7 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %8, i32 0, i32 0 + %10 = bitcast [1 x i32]* %9 to i32* + %11 = load i32, i32* %10, align 4 + ret i32 %11 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_array11(%struct.array11* noalias sret(%struct.array11) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo_point10([1 x i32] %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = getelementptr inbounds %struct.point10, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + %6 = bitcast i32* %5 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %6, align 4 + %7 = bitcast %struct.point10* %2 to i8* + %8 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + %9 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %9, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + ret i32 %11 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_point11(%struct.point11* noalias sret(%struct.point11) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_array20(%struct.array20* noalias sret(%struct.array20) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.array20, align 4 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + store [2 x i32] %1, [2 x i32]* %5, align 4 + %6 = bitcast %struct.array20* %0 to i8* + %7 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_array21(%struct.array21* noalias sret(%struct.array21) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.array21, align 4 + %4 = bitcast %struct.array21* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.array21* %0 to i8* + %6 = bitcast %struct.array21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_point20(%struct.point20* noalias sret(%struct.point20) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point20, align 4 + %4 = getelementptr inbounds %struct.point20, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %5, align 4 + %6 = bitcast %struct.point20* %0 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_point21(%struct.point21* noalias sret(%struct.point21) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point21, align 4 + %4 = bitcast %struct.point21* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/demo.ll b/internal/cabi/_testdata/arch/armv6/demo.ll new file mode 100644 index 00000000..435afa31 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/demo.ll @@ -0,0 +1,814 @@ +; ModuleID = '../../wrap/demo.c' +source_filename = "../../wrap/demo.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point = type { i32, i32 } +%struct.point1 = type { i32, i32, i32 } +%struct.point64 = type { i64, i64 } +%struct.struct32 = type { i32 } +%struct.point2 = type { i8, i32, i32 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i32 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i32 } +%struct.point7 = type { i8, i8, i8, i8, i8, i32, i8 } +%struct.data1 = type { i8, i64 } +%struct.data2 = type { i32, i64 } +%struct.data3 = type { i64, i8 } +%struct.fdata1 = type { float } +%struct.ddata1 = type { double } +%struct.ddata2 = type { double, double } +%struct.ddata3 = type { double, double, double } +%struct.fdata2i = type { float, i32 } +%struct.fdata2 = type { float, float } +%struct.fdata3 = type { float, float, float } +%struct.fdata4 = type { float, float, float, float } +%struct.fdata5 = type { float, float, float, float, float } +%struct.fdata2id = type { i8, i8, double } +%struct.fdata7if = type { [7 x i8], float } +%struct.fdata4if = type { float, i8, float, float } +%struct.array = type { [8 x i32] } + +@.str = private unnamed_addr constant [20 x i8] c"point64: %lld %lld\0A\00", align 1 +@.str.1 = private unnamed_addr constant [14 x i8] c"struct32: %d\0A\00", align 1 +@.str.2 = private unnamed_addr constant [14 x i8] c"point: %d %d\0A\00", align 1 +@.str.3 = private unnamed_addr constant [18 x i8] c"point1: %d %d %d\0A\00", align 1 +@.str.4 = private unnamed_addr constant [18 x i8] c"point2: %d %d %d\0A\00", align 1 +@.str.5 = private unnamed_addr constant [18 x i8] c"point3: %d %d %d\0A\00", align 1 +@.str.6 = private unnamed_addr constant [21 x i8] c"point4: %d %d %d %d\0A\00", align 1 +@.str.7 = private unnamed_addr constant [24 x i8] c"point5: %d %d %d %d %d\0A\00", align 1 +@.str.8 = private unnamed_addr constant [27 x i8] c"point6: %d %d %d %d %d %d\0A\00", align 1 +@.str.9 = private unnamed_addr constant [30 x i8] c"point7: %d %d %d %d %d %d %d\0A\00", align 1 +@.str.10 = private unnamed_addr constant [16 x i8] c"data1: %d %lld\0A\00", align 1 +@.str.11 = private unnamed_addr constant [16 x i8] c"data2: %d %lld\0A\00", align 1 +@.str.12 = private unnamed_addr constant [16 x i8] c"data3: %lld %d\0A\00", align 1 +@.str.13 = private unnamed_addr constant [9 x i8] c"ff1: %f\0A\00", align 1 +@.str.14 = private unnamed_addr constant [9 x i8] c"dd1: %f\0A\00", align 1 +@.str.15 = private unnamed_addr constant [12 x i8] c"dd2: %f %f\0A\00", align 1 +@.str.16 = private unnamed_addr constant [15 x i8] c"dd3: %f %f %f\0A\00", align 1 +@.str.17 = private unnamed_addr constant [13 x i8] c"ff2i: %f %d\0A\00", align 1 +@.str.18 = private unnamed_addr constant [12 x i8] c"ff2: %f %f\0A\00", align 1 +@.str.19 = private unnamed_addr constant [15 x i8] c"ff3: %f %f %f\0A\00", align 1 +@.str.20 = private unnamed_addr constant [18 x i8] c"ff4: %f %f %f %f\0A\00", align 1 +@.str.21 = private unnamed_addr constant [21 x i8] c"ff5: %f %f %f %f %f\0A\00", align 1 +@.str.22 = private unnamed_addr constant [15 x i8] c"ff6: %d %d %f\0A\00", align 1 +@.str.23 = private unnamed_addr constant [17 x i8] c"ff7if: %d %d %f\0A\00", align 1 +@.str.24 = private unnamed_addr constant [20 x i8] c"ff4if: %f %d %f %f\0A\00", align 1 +@.str.25 = private unnamed_addr constant [16 x i8] c"demo: %d %d %d\0A\00", align 1 +@__const.callback.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.26 = private unnamed_addr constant [27 x i8] c"callback1 array: %d %d %d\0A\00", align 1 +@__const.callback1.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback1.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.27 = private unnamed_addr constant [22 x i8] c"callback1 ret: %d,%d\0A\00", align 1 +@.str.28 = private unnamed_addr constant [28 x i8] c"mycallback array: %d %d %d\0A\00", align 1 +@.str.29 = private unnamed_addr constant [22 x i8] c"mycallback pt: %d %d\0A\00", align 1 +@.str.30 = private unnamed_addr constant [26 x i8] c"mycallback pt1: %d %d %d\0A\00", align 1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + %4 = add nsw i32 %3, 100 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + %4 = add nsw i64 %3, 100 + ret i64 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt64(%struct.point64* noalias sret(%struct.point64) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point64, align 8 + %4 = bitcast %struct.point64* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.point64, %struct.point64* %3, i32 0, i32 0 + %6 = load i64, i64* %5, align 8 + %7 = getelementptr inbounds %struct.point64, %struct.point64* %3, i32 0, i32 1 + %8 = load i64, i64* %7, align 8 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i32 0, i32 0), i64 noundef %6, i64 noundef %8) + %10 = bitcast %struct.point64* %0 to i8* + %11 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %10, i8* align 8 %11, i32 16, i1 false) + ret void +} + +declare i32 @printf(i8* noundef, ...) #1 + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #2 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo32s([1 x i32] %0) #0 { + %2 = alloca %struct.struct32, align 4 + %3 = alloca %struct.struct32, align 4 + %4 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %5 = bitcast i32* %4 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %5, align 4 + %6 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %7 = load i32, i32* %6, align 4 + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i32 0, i32 0), i32 noundef %7) + %9 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + %12 = add nsw i32 %11, 100 + store i32 %12, i32* %9, align 4 + %13 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %14 = load i32, i32* %13, align 4 + ret i32 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt(%struct.point* noalias sret(%struct.point) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point, align 4 + %4 = bitcast %struct.point* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 4 + %7 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 1 + %8 = load i32, i32* %7, align 4 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i32 0, i32 0), i32 noundef %6, i32 noundef %8) + %10 = bitcast %struct.point* %0 to i8* + %11 = bitcast %struct.point* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 4 %11, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt1(%struct.point1* noalias sret(%struct.point1) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point1, align 4 + %4 = bitcast %struct.point1* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 4 + %7 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 1 + %8 = load i32, i32* %7, align 4 + %9 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 2 + %10 = load i32, i32* %9, align 4 + %11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i32 0, i32 0), i32 noundef %6, i32 noundef %8, i32 noundef %10) + %12 = bitcast %struct.point1* %0 to i8* + %13 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 4 %13, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt2(%struct.point2* noalias sret(%struct.point2) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 1 + %9 = load i32, i32* %8, align 4 + %10 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 2 + %11 = load i32, i32* %10, align 4 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i32 0, i32 0), i32 noundef %7, i32 noundef %9, i32 noundef %11) + %13 = bitcast %struct.point2* %0 to i8* + %14 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @pt3([1 x i32] %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca [1 x i32], align 4 + %5 = alloca i32, align 4 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 3, i1 false) + %8 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i32 0, i32 0), i32 noundef %10, i32 noundef %13, i32 noundef %16) + %18 = bitcast %struct.point3* %2 to i8* + %19 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %18, i8* align 1 %19, i32 3, i1 false) + %20 = bitcast i32* %5 to i8* + %21 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %20, i8* align 1 %21, i32 3, i1 false) + %22 = load i32, i32* %5, align 4 + ret i32 %22 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt4(%struct.point4* noalias sret(%struct.point4) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 3 + %15 = load i32, i32* %14, align 4 + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %15) + %17 = bitcast %struct.point4* %0 to i8* + %18 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %17, i8* align 4 %18, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt5(%struct.point5* noalias sret(%struct.point5) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point5, align 1 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point5* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 5, i1 false) + %7 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 0 + %8 = load i8, i8* %7, align 1 + %9 = zext i8 %8 to i32 + %10 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 1 + %11 = load i8, i8* %10, align 1 + %12 = zext i8 %11 to i32 + %13 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 2 + %14 = load i8, i8* %13, align 1 + %15 = zext i8 %14 to i32 + %16 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 3 + %17 = load i8, i8* %16, align 1 + %18 = zext i8 %17 to i32 + %19 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 4 + %20 = load i8, i8* %19, align 1 + %21 = zext i8 %20 to i32 + %22 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i32 0, i32 0), i32 noundef %9, i32 noundef %12, i32 noundef %15, i32 noundef %18, i32 noundef %21) + %23 = bitcast %struct.point5* %0 to i8* + %24 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %23, i8* align 1 %24, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt6(%struct.point6* noalias sret(%struct.point6) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point6, align 4 + %4 = bitcast %struct.point6* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 3 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 4 + %18 = load i8, i8* %17, align 4 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 5 + %21 = load i32, i32* %20, align 4 + %22 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %21) + %23 = bitcast %struct.point6* %0 to i8* + %24 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %23, i8* align 4 %24, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @pt7(%struct.point7* noalias sret(%struct.point7) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point7, align 4 + %4 = bitcast %struct.point7* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 3 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 4 + %18 = load i8, i8* %17, align 4 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 5 + %21 = load i32, i32* %20, align 4 + %22 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 6 + %23 = load i8, i8* %22, align 4 + %24 = zext i8 %23 to i32 + %25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %21, i32 noundef %24) + %26 = bitcast %struct.point7* %0 to i8* + %27 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %26, i8* align 4 %27, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @fn1(%struct.data1* noalias sret(%struct.data1) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.data1, align 8 + %4 = bitcast %struct.data1* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data1, %struct.data1* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 8 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.data1, %struct.data1* %3, i32 0, i32 1 + %9 = load i64, i64* %8, align 8 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i32 0, i32 0), i32 noundef %7, i64 noundef %9) + %11 = bitcast %struct.data1* %0 to i8* + %12 = bitcast %struct.data1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %11, i8* align 8 %12, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @fn2(%struct.data2* noalias sret(%struct.data2) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.data2, align 8 + %4 = bitcast %struct.data2* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data2, %struct.data2* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 8 + %7 = getelementptr inbounds %struct.data2, %struct.data2* %3, i32 0, i32 1 + %8 = load i64, i64* %7, align 8 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i32 0, i32 0), i32 noundef %6, i64 noundef %8) + %10 = bitcast %struct.data2* %0 to i8* + %11 = bitcast %struct.data2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %10, i8* align 8 %11, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @fn3(%struct.data3* noalias sret(%struct.data3) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.data3, align 8 + %4 = bitcast %struct.data3* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data3, %struct.data3* %3, i32 0, i32 0 + %6 = load i64, i64* %5, align 8 + %7 = getelementptr inbounds %struct.data3, %struct.data3* %3, i32 0, i32 1 + %8 = load i8, i8* %7, align 8 + %9 = zext i8 %8 to i32 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i32 0, i32 0), i64 noundef %6, i32 noundef %9) + %11 = bitcast %struct.data3* %0 to i8* + %12 = bitcast %struct.data3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %11, i8* align 8 %12, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.fdata1 @ff1(%struct.fdata1 %0) #0 { + %2 = alloca %struct.fdata1, align 4 + %3 = alloca %struct.fdata1, align 4 + store %struct.fdata1 %0, %struct.fdata1* %3, align 4 + %4 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + %5 = load float, float* %4, align 4 + %6 = fpext float %5 to double + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i32 0, i32 0), double noundef %6) + %8 = bitcast %struct.fdata1* %2 to i8* + %9 = bitcast %struct.fdata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 4, i1 false) + %10 = load %struct.fdata1, %struct.fdata1* %2, align 4 + ret %struct.fdata1 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.ddata1 @dd1(%struct.ddata1 %0) #0 { + %2 = alloca %struct.ddata1, align 8 + %3 = alloca %struct.ddata1, align 8 + store %struct.ddata1 %0, %struct.ddata1* %3, align 8 + %4 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + %5 = load double, double* %4, align 8 + %6 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i32 0, i32 0), double noundef %5) + %7 = bitcast %struct.ddata1* %2 to i8* + %8 = bitcast %struct.ddata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %7, i8* align 8 %8, i32 8, i1 false) + %9 = load %struct.ddata1, %struct.ddata1* %2, align 8 + ret %struct.ddata1 %9 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.ddata2 @dd2(%struct.ddata2 %0) #0 { + %2 = alloca %struct.ddata2, align 8 + %3 = alloca %struct.ddata2, align 8 + store %struct.ddata2 %0, %struct.ddata2* %3, align 8 + %4 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %3, i32 0, i32 0 + %5 = load double, double* %4, align 8 + %6 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %3, i32 0, i32 1 + %7 = load double, double* %6, align 8 + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i32 0, i32 0), double noundef %5, double noundef %7) + %9 = bitcast %struct.ddata2* %2 to i8* + %10 = bitcast %struct.ddata2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %9, i8* align 8 %10, i32 16, i1 false) + %11 = load %struct.ddata2, %struct.ddata2* %2, align 8 + ret %struct.ddata2 %11 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.ddata3 @dd3(%struct.ddata3 %0) #0 { + %2 = alloca %struct.ddata3, align 8 + %3 = alloca %struct.ddata3, align 8 + store %struct.ddata3 %0, %struct.ddata3* %3, align 8 + %4 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %3, i32 0, i32 0 + %5 = load double, double* %4, align 8 + %6 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %3, i32 0, i32 1 + %7 = load double, double* %6, align 8 + %8 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %3, i32 0, i32 2 + %9 = load double, double* %8, align 8 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i32 0, i32 0), double noundef %5, double noundef %7, double noundef %9) + %11 = bitcast %struct.ddata3* %2 to i8* + %12 = bitcast %struct.ddata3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %11, i8* align 8 %12, i32 24, i1 false) + %13 = load %struct.ddata3, %struct.ddata3* %2, align 8 + ret %struct.ddata3 %13 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @ff2i(%struct.fdata2i* noalias sret(%struct.fdata2i) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.fdata2i, align 4 + %4 = bitcast %struct.fdata2i* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 1 + %9 = load i32, i32* %8, align 4 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i32 0, i32 0), double noundef %7, i32 noundef %9) + %11 = bitcast %struct.fdata2i* %0 to i8* + %12 = bitcast %struct.fdata2i* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.fdata2 @ff2(%struct.fdata2 %0) #0 { + %2 = alloca %struct.fdata2, align 4 + %3 = alloca %struct.fdata2, align 4 + store %struct.fdata2 %0, %struct.fdata2* %3, align 4 + %4 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 0 + %5 = load float, float* %4, align 4 + %6 = fpext float %5 to double + %7 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 1 + %8 = load float, float* %7, align 4 + %9 = fpext float %8 to double + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i32 0, i32 0), double noundef %6, double noundef %9) + %11 = bitcast %struct.fdata2* %2 to i8* + %12 = bitcast %struct.fdata2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 8, i1 false) + %13 = load %struct.fdata2, %struct.fdata2* %2, align 4 + ret %struct.fdata2 %13 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.fdata3 @ff3(%struct.fdata3 %0) #0 { + %2 = alloca %struct.fdata3, align 4 + %3 = alloca %struct.fdata3, align 4 + store %struct.fdata3 %0, %struct.fdata3* %3, align 4 + %4 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 0 + %5 = load float, float* %4, align 4 + %6 = fpext float %5 to double + %7 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 1 + %8 = load float, float* %7, align 4 + %9 = fpext float %8 to double + %10 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 2 + %11 = load float, float* %10, align 4 + %12 = fpext float %11 to double + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i32 0, i32 0), double noundef %6, double noundef %9, double noundef %12) + %14 = bitcast %struct.fdata3* %2 to i8* + %15 = bitcast %struct.fdata3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 %15, i32 12, i1 false) + %16 = load %struct.fdata3, %struct.fdata3* %2, align 4 + ret %struct.fdata3 %16 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.fdata4 @ff4(%struct.fdata4 %0) #0 { + %2 = alloca %struct.fdata4, align 4 + %3 = alloca %struct.fdata4, align 4 + store %struct.fdata4 %0, %struct.fdata4* %3, align 4 + %4 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 0 + %5 = load float, float* %4, align 4 + %6 = fpext float %5 to double + %7 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 1 + %8 = load float, float* %7, align 4 + %9 = fpext float %8 to double + %10 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 2 + %11 = load float, float* %10, align 4 + %12 = fpext float %11 to double + %13 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 3 + %14 = load float, float* %13, align 4 + %15 = fpext float %14 to double + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i32 0, i32 0), double noundef %6, double noundef %9, double noundef %12, double noundef %15) + %17 = bitcast %struct.fdata4* %2 to i8* + %18 = bitcast %struct.fdata4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %17, i8* align 4 %18, i32 16, i1 false) + %19 = load %struct.fdata4, %struct.fdata4* %2, align 4 + ret %struct.fdata4 %19 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @ff5(%struct.fdata5* noalias sret(%struct.fdata5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.fdata5, align 4 + %4 = bitcast %struct.fdata5* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %3, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %3, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %3, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %3, i32 0, i32 4 + %18 = load float, float* %17, align 4 + %19 = fpext float %18 to double + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i32 0, i32 0), double noundef %7, double noundef %10, double noundef %13, double noundef %16, double noundef %19) + %21 = bitcast %struct.fdata5* %0 to i8* + %22 = bitcast %struct.fdata5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %21, i8* align 4 %22, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @ff2id(%struct.fdata2id* noalias sret(%struct.fdata2id) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.fdata2id, align 8 + %4 = bitcast %struct.fdata2id* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 8 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 2 + %12 = load double, double* %11, align 8 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i32 0, i32 0), i32 noundef %7, i32 noundef %10, double noundef %12) + %14 = bitcast %struct.fdata2id* %0 to i8* + %15 = bitcast %struct.fdata2id* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %14, i8* align 8 %15, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @ff7if(%struct.fdata7if* noalias sret(%struct.fdata7if) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.fdata7if, align 4 + %4 = bitcast %struct.fdata7if* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 0 + %6 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i32 0, i32 0 + %7 = load i8, i8* %6, align 4 + %8 = zext i8 %7 to i32 + %9 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 0 + %10 = getelementptr inbounds [7 x i8], [7 x i8]* %9, i32 0, i32 1 + %11 = load i8, i8* %10, align 1 + %12 = zext i8 %11 to i32 + %13 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = fpext float %14 to double + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i32 0, i32 0), i32 noundef %8, i32 noundef %12, double noundef %15) + %17 = bitcast %struct.fdata7if* %0 to i8* + %18 = bitcast %struct.fdata7if* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %17, i8* align 4 %18, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @ff4if(%struct.fdata4if* noalias sret(%struct.fdata4if) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.fdata4if, align 4 + %4 = bitcast %struct.fdata4if* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 4 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i32 0, i32 0), double noundef %7, i32 noundef %10, double noundef %13, double noundef %16) + %18 = bitcast %struct.fdata4if* %0 to i8* + %19 = bitcast %struct.fdata4if* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %18, i8* align 4 %19, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo(%struct.array* noalias sret(%struct.array) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array, align 4 + %4 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + store [8 x i32] %1, [8 x i32]* %4, align 4 + %5 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %6 = getelementptr inbounds [8 x i32], [8 x i32]* %5, i32 0, i32 0 + %7 = load i32, i32* %6, align 4 + %8 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %9 = getelementptr inbounds [8 x i32], [8 x i32]* %8, i32 0, i32 1 + %10 = load i32, i32* %9, align 4 + %11 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i32 0, i32 2 + %13 = load i32, i32* %12, align 4 + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.25, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13) + %15 = bitcast %struct.array* %0 to i8* + %16 = bitcast %struct.array* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %15, i8* align 4 %16, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array* noalias sret(%struct.array) align 4 %0, i32 noundef %1) #0 { + %3 = alloca i32, align 4 + %4 = alloca i32, align 4 + store i32 %1, i32* %3, align 4 + store i32 0, i32* %4, align 4 + br label %5 + +5: ; preds = %15, %2 + %6 = load i32, i32* %4, align 4 + %7 = icmp slt i32 %6, 8 + br i1 %7, label %8, label %18 + +8: ; preds = %5 + %9 = load i32, i32* %4, align 4 + %10 = load i32, i32* %3, align 4 + %11 = add nsw i32 %9, %10 + %12 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %13 = load i32, i32* %4, align 4 + %14 = getelementptr inbounds [8 x i32], [8 x i32]* %12, i32 0, i32 %13 + store i32 %11, i32* %14, align 4 + br label %15 + +15: ; preds = %8 + %16 = load i32, i32* %4, align 4 + %17 = add nsw i32 %16, 1 + store i32 %17, i32* %4, align 4 + br label %5, !llvm.loop !10 + +18: ; preds = %5 + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @callback(void (%struct.array*, [8 x i32], [2 x i32], [3 x i32])* noundef %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array, align 4 + %4 = alloca void (%struct.array*, [8 x i32], [2 x i32], [3 x i32])*, align 4 + %5 = alloca %struct.array, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca %struct.point1, align 4 + %8 = alloca %struct.array, align 4 + %9 = alloca %struct.array, align 4 + %10 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + store [8 x i32] %1, [8 x i32]* %10, align 4 + store void (%struct.array*, [8 x i32], [2 x i32], [3 x i32])* %0, void (%struct.array*, [8 x i32], [2 x i32], [3 x i32])** %4, align 4 + %11 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %12 = load [8 x i32], [8 x i32]* %11, align 4 + call void @demo(%struct.array* sret(%struct.array) align 4 %5, [8 x i32] %12) + %13 = bitcast %struct.point* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 bitcast (%struct.point* @__const.callback.pt to i8*), i32 8, i1 false) + %14 = bitcast %struct.point1* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 bitcast (%struct.point1* @__const.callback.pt1 to i8*), i32 12, i1 false) + %15 = load void (%struct.array*, [8 x i32], [2 x i32], [3 x i32])*, void (%struct.array*, [8 x i32], [2 x i32], [3 x i32])** %4, align 4 + %16 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %17 = load [8 x i32], [8 x i32]* %16, align 4 + %18 = bitcast %struct.point* %6 to [2 x i32]* + %19 = load [2 x i32], [2 x i32]* %18, align 4 + %20 = bitcast %struct.point1* %7 to [3 x i32]* + %21 = load [3 x i32], [3 x i32]* %20, align 4 + call void %15(%struct.array* sret(%struct.array) align 4 %8, [8 x i32] %17, [2 x i32] %19, [3 x i32] %21) + %22 = getelementptr inbounds %struct.array, %struct.array* %8, i32 0, i32 0 + %23 = load [8 x i32], [8 x i32]* %22, align 4 + call void @demo(%struct.array* sret(%struct.array) align 4 %9, [8 x i32] %23) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @callback1(void (%struct.point*, [8 x i32], [2 x i32], [3 x i32])* noundef %0, [8 x i32] %1) #0 { + %3 = alloca %struct.array, align 4 + %4 = alloca void (%struct.point*, [8 x i32], [2 x i32], [3 x i32])*, align 4 + %5 = alloca %struct.point, align 4 + %6 = alloca %struct.point1, align 4 + %7 = alloca %struct.point, align 4 + %8 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + store [8 x i32] %1, [8 x i32]* %8, align 4 + store void (%struct.point*, [8 x i32], [2 x i32], [3 x i32])* %0, void (%struct.point*, [8 x i32], [2 x i32], [3 x i32])** %4, align 4 + %9 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %10 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + %12 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %13 = getelementptr inbounds [8 x i32], [8 x i32]* %12, i32 0, i32 1 + %14 = load i32, i32* %13, align 4 + %15 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %16 = getelementptr inbounds [8 x i32], [8 x i32]* %15, i32 0, i32 7 + %17 = load i32, i32* %16, align 4 + %18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i32 0, i32 0), i32 noundef %11, i32 noundef %14, i32 noundef %17) + %19 = bitcast %struct.point* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %19, i8* align 4 bitcast (%struct.point* @__const.callback1.pt to i8*), i32 8, i1 false) + %20 = bitcast %struct.point1* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %20, i8* align 4 bitcast (%struct.point1* @__const.callback1.pt1 to i8*), i32 12, i1 false) + %21 = load void (%struct.point*, [8 x i32], [2 x i32], [3 x i32])*, void (%struct.point*, [8 x i32], [2 x i32], [3 x i32])** %4, align 4 + %22 = getelementptr inbounds %struct.array, %struct.array* %3, i32 0, i32 0 + %23 = load [8 x i32], [8 x i32]* %22, align 4 + %24 = bitcast %struct.point* %5 to [2 x i32]* + %25 = load [2 x i32], [2 x i32]* %24, align 4 + %26 = bitcast %struct.point1* %6 to [3 x i32]* + %27 = load [3 x i32], [3 x i32]* %26, align 4 + call void %21(%struct.point* sret(%struct.point) align 4 %7, [8 x i32] %23, [2 x i32] %25, [3 x i32] %27) + %28 = getelementptr inbounds %struct.point, %struct.point* %7, i32 0, i32 0 + %29 = load i32, i32* %28, align 4 + %30 = getelementptr inbounds %struct.point, %struct.point* %7, i32 0, i32 1 + %31 = load i32, i32* %30, align 4 + %32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i32 0, i32 0), i32 noundef %29, i32 noundef %31) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @mycallback(%struct.point* noalias sret(%struct.point) align 4 %0, [8 x i32] %1, [2 x i32] %2, [3 x i32] %3) #0 { + %5 = alloca %struct.array, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca %struct.point1, align 4 + %8 = getelementptr inbounds %struct.array, %struct.array* %5, i32 0, i32 0 + store [8 x i32] %1, [8 x i32]* %8, align 4 + %9 = bitcast %struct.point* %6 to [2 x i32]* + store [2 x i32] %2, [2 x i32]* %9, align 4 + %10 = bitcast %struct.point1* %7 to [3 x i32]* + store [3 x i32] %3, [3 x i32]* %10, align 4 + %11 = getelementptr inbounds %struct.array, %struct.array* %5, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i32 0, i32 0 + %13 = load i32, i32* %12, align 4 + %14 = getelementptr inbounds %struct.array, %struct.array* %5, i32 0, i32 0 + %15 = getelementptr inbounds [8 x i32], [8 x i32]* %14, i32 0, i32 1 + %16 = load i32, i32* %15, align 4 + %17 = getelementptr inbounds %struct.array, %struct.array* %5, i32 0, i32 0 + %18 = getelementptr inbounds [8 x i32], [8 x i32]* %17, i32 0, i32 7 + %19 = load i32, i32* %18, align 4 + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i32 0, i32 0), i32 noundef %13, i32 noundef %16, i32 noundef %19) + %21 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %22 = load i32, i32* %21, align 4 + %23 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %24 = load i32, i32* %23, align 4 + %25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i32 0, i32 0), i32 noundef %22, i32 noundef %24) + %26 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 0 + %27 = load i32, i32* %26, align 4 + %28 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 1 + %29 = load i32, i32* %28, align 4 + %30 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 2 + %31 = load i32, i32* %30, align 4 + %32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.30, i32 0, i32 0), i32 noundef %27, i32 noundef %29, i32 noundef %31) + %33 = getelementptr inbounds %struct.point, %struct.point* %0, i32 0, i32 0 + %34 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %35 = load i32, i32* %34, align 4 + %36 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 0 + %37 = load i32, i32* %36, align 4 + %38 = add nsw i32 %35, %37 + store i32 %38, i32* %33, align 4 + %39 = getelementptr inbounds %struct.point, %struct.point* %0, i32 0, i32 1 + %40 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %41 = load i32, i32* %40, align 4 + %42 = getelementptr inbounds %struct.point1, %struct.point1* %7, i32 0, i32 1 + %43 = load i32, i32* %42, align 4 + %44 = add nsw i32 %41, %43 + store i32 %44, i32* %39, align 4 + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #2 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} +!10 = distinct !{!10, !11} +!11 = !{!"llvm.loop.mustprogress"} diff --git a/internal/cabi/_testdata/arch/armv6/empty.ll b/internal/cabi/_testdata/arch/armv6/empty.ll new file mode 100644 index 00000000..a42eaa3c --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/empty.ll @@ -0,0 +1,70 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_float32.ll b/internal/cabi/_testdata/arch/armv6/struct_float32.ll new file mode 100644 index 00000000..b5e1a322 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_float32.ll @@ -0,0 +1,257 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point1 @demo1(%struct.point1 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + store %struct.point1 %0, %struct.point1* %3, align 4 + %4 = bitcast %struct.point1* %2 to i8* + %5 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 4, i1 false) + %6 = load %struct.point1, %struct.point1* %2, align 4 + ret %struct.point1 %6 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point2 @demo2(%struct.point2 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + store %struct.point2 %0, %struct.point2* %3, align 4 + %4 = bitcast %struct.point2* %2 to i8* + %5 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 8, i1 false) + %6 = load %struct.point2, %struct.point2* %2, align 4 + ret %struct.point2 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point3 @demo3(%struct.point3 %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + store %struct.point3 %0, %struct.point3* %3, align 4 + %4 = bitcast %struct.point3* %2 to i8* + %5 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 12, i1 false) + %6 = load %struct.point3, %struct.point3* %2, align 4 + ret %struct.point3 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point4 @demo4(%struct.point4 %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + store %struct.point4 %0, %struct.point4* %3, align 4 + %4 = bitcast %struct.point4* %2 to i8* + %5 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %4, i8* align 4 %5, i32 16, i1 false) + %6 = load %struct.point4, %struct.point4* %2, align 4 + ret %struct.point4 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point5, align 4 + %4 = bitcast %struct.point5* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.point6, align 4 + %4 = bitcast %struct.point6* %3 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.point7, align 4 + %4 = bitcast %struct.point7* %3 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %4, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %4, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.point9, align 4 + %4 = bitcast %struct.point9* %3 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %4, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = bitcast %struct.point10* %3 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %4, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, [11 x i32] %1) #0 { + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to [11 x i32]* + store [11 x i32] %1, [11 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, [12 x i32] %1) #0 { + %3 = alloca %struct.point12, align 4 + %4 = bitcast %struct.point12* %3 to [12 x i32]* + store [12 x i32] %1, [12 x i32]* %4, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, [13 x i32] %1) #0 { + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to [13 x i32]* + store [13 x i32] %1, [13 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, [14 x i32] %1) #0 { + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to [14 x i32]* + store [14 x i32] %1, [14 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, [15 x i32] %1) #0 { + %3 = alloca %struct.point15, align 4 + %4 = bitcast %struct.point15* %3 to [15 x i32]* + store [15 x i32] %1, [15 x i32]* %4, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, [16 x i32] %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = bitcast %struct.point16* %3 to [16 x i32]* + store [16 x i32] %1, [16 x i32]* %4, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_float64.ll b/internal/cabi/_testdata/arch/armv6/struct_float64.ll new file mode 100644 index 00000000..7d00d869 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_float64.ll @@ -0,0 +1,233 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point1 @demo1(%struct.point1 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + store %struct.point1 %0, %struct.point1* %3, align 8 + %4 = bitcast %struct.point1* %2 to i8* + %5 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 8, i1 false) + %6 = load %struct.point1, %struct.point1* %2, align 8 + ret %struct.point1 %6 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point2 @demo2(%struct.point2 %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + store %struct.point2 %0, %struct.point2* %3, align 8 + %4 = bitcast %struct.point2* %2 to i8* + %5 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 16, i1 false) + %6 = load %struct.point2, %struct.point2* %2, align 8 + ret %struct.point2 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point3 @demo3(%struct.point3 %0) #0 { + %2 = alloca %struct.point3, align 8 + %3 = alloca %struct.point3, align 8 + store %struct.point3 %0, %struct.point3* %3, align 8 + %4 = bitcast %struct.point3* %2 to i8* + %5 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 24, i1 false) + %6 = load %struct.point3, %struct.point3* %2, align 8 + ret %struct.point3 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local %struct.point4 @demo4(%struct.point4 %0) #0 { + %2 = alloca %struct.point4, align 8 + %3 = alloca %struct.point4, align 8 + store %struct.point4 %0, %struct.point4* %3, align 8 + %4 = bitcast %struct.point4* %2 to i8* + %5 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %4, i8* align 8 %5, i32 32, i1 false) + %6 = load %struct.point4, %struct.point4* %2, align 8 + ret %struct.point4 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, [5 x i64] %1) #0 { + %3 = alloca %struct.point5, align 8 + %4 = bitcast %struct.point5* %3 to [5 x i64]* + store [5 x i64] %1, [5 x i64]* %4, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, [6 x i64] %1) #0 { + %3 = alloca %struct.point6, align 8 + %4 = bitcast %struct.point6* %3 to [6 x i64]* + store [6 x i64] %1, [6 x i64]* %4, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, [7 x i64] %1) #0 { + %3 = alloca %struct.point7, align 8 + %4 = bitcast %struct.point7* %3 to [7 x i64]* + store [7 x i64] %1, [7 x i64]* %4, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, [8 x i64] %1) #0 { + %3 = alloca %struct.point8, align 8 + %4 = bitcast %struct.point8* %3 to [8 x i64]* + store [8 x i64] %1, [8 x i64]* %4, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_int16.ll b/internal/cabi/_testdata/arch/armv6/struct_int16.ll new file mode 100644 index 00000000..e4b92005 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_int16.ll @@ -0,0 +1,302 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define dso_local i16 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = alloca [1 x i32], align 4 + %5 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %6 = bitcast i16* %5 to i8* + %7 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 4 %7, i32 2, i1 false) + %8 = bitcast %struct.point1* %2 to i8* + %9 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %8, i8* align 2 %9, i32 2, i1 false) + %10 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %11 = load i16, i16* %10, align 2 + ret i16 %11 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2([1 x i32] %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = bitcast %struct.point2* %3 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %4, align 2 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point2* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point3, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point3* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point3* %0 to i8* + %8 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point4, align 2 + %4 = bitcast %struct.point4* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point5, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point5* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point5* %0 to i8* + %8 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point6, align 2 + %4 = bitcast %struct.point6* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 2 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point7, align 2 + %4 = alloca [4 x i32], align 4 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point7* %3 to i8* + %6 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 14, i1 false) + %7 = bitcast %struct.point7* %0 to i8* + %8 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 2 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point8, align 2 + %4 = bitcast %struct.point8* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 2 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point9, align 2 + %4 = alloca [5 x i32], align 4 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point9* %3 to i8* + %6 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 18, i1 false) + %7 = bitcast %struct.point9* %0 to i8* + %8 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point10, align 2 + %4 = bitcast %struct.point10* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 2 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.point11, align 2 + %4 = alloca [6 x i32], align 4 + store [6 x i32] %1, [6 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %3 to i8* + %6 = bitcast [6 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 22, i1 false) + %7 = bitcast %struct.point11* %0 to i8* + %8 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.point12, align 2 + %4 = bitcast %struct.point12* %3 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %4, align 2 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.point13, align 2 + %4 = alloca [7 x i32], align 4 + store [7 x i32] %1, [7 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %3 to i8* + %6 = bitcast [7 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 26, i1 false) + %7 = bitcast %struct.point13* %0 to i8* + %8 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.point14, align 2 + %4 = bitcast %struct.point14* %3 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %4, align 2 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.point15, align 2 + %4 = alloca [8 x i32], align 4 + store [8 x i32] %1, [8 x i32]* %4, align 4 + %5 = bitcast %struct.point15* %3 to i8* + %6 = bitcast [8 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 30, i1 false) + %7 = bitcast %struct.point15* %0 to i8* + %8 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.point16, align 2 + %4 = bitcast %struct.point16* %3 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %4, align 2 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.point17, align 2 + %4 = alloca [9 x i32], align 4 + store [9 x i32] %1, [9 x i32]* %4, align 4 + %5 = bitcast %struct.point17* %3 to i8* + %6 = bitcast [9 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 34, i1 false) + %7 = bitcast %struct.point17* %0 to i8* + %8 = bitcast %struct.point17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.point18, align 2 + %4 = bitcast %struct.point18* %3 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %4, align 2 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.point19, align 2 + %4 = alloca [10 x i32], align 4 + store [10 x i32] %1, [10 x i32]* %4, align 4 + %5 = bitcast %struct.point19* %3 to i8* + %6 = bitcast [10 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 38, i1 false) + %7 = bitcast %struct.point19* %0 to i8* + %8 = bitcast %struct.point19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.point20, align 2 + %4 = bitcast %struct.point20* %3 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %4, align 2 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_int32.ll b/internal/cabi/_testdata/arch/armv6/struct_int32.ll new file mode 100644 index 00000000..d7919514 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_int32.ll @@ -0,0 +1,257 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast i32* %4 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + ret i32 %9 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point3, align 4 + %4 = bitcast %struct.point3* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point5, align 4 + %4 = bitcast %struct.point5* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.point6, align 4 + %4 = bitcast %struct.point6* %3 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.point7, align 4 + %4 = bitcast %struct.point7* %3 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %4, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %4, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.point9, align 4 + %4 = bitcast %struct.point9* %3 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %4, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = bitcast %struct.point10* %3 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %4, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, [11 x i32] %1) #0 { + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to [11 x i32]* + store [11 x i32] %1, [11 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, [12 x i32] %1) #0 { + %3 = alloca %struct.point12, align 4 + %4 = bitcast %struct.point12* %3 to [12 x i32]* + store [12 x i32] %1, [12 x i32]* %4, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, [13 x i32] %1) #0 { + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to [13 x i32]* + store [13 x i32] %1, [13 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, [14 x i32] %1) #0 { + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to [14 x i32]* + store [14 x i32] %1, [14 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, [15 x i32] %1) #0 { + %3 = alloca %struct.point15, align 4 + %4 = bitcast %struct.point15* %3 to [15 x i32]* + store [15 x i32] %1, [15 x i32]* %4, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, [16 x i32] %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = bitcast %struct.point16* %3 to [16 x i32]* + store [16 x i32] %1, [16 x i32]* %4, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_int64.ll b/internal/cabi/_testdata/arch/armv6/struct_int64.ll new file mode 100644 index 00000000..68d17466 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_int64.ll @@ -0,0 +1,230 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 8 %0, [1 x i64] %1) #0 { + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast i64* %4 to [1 x i64]* + store [1 x i64] %1, [1 x i64]* %5, align 8 + %6 = bitcast %struct.point1* %0 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, [3 x i64] %1) #0 { + %3 = alloca %struct.point3, align 8 + %4 = bitcast %struct.point3* %3 to [3 x i64]* + store [3 x i64] %1, [3 x i64]* %4, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, [4 x i64] %1) #0 { + %3 = alloca %struct.point4, align 8 + %4 = bitcast %struct.point4* %3 to [4 x i64]* + store [4 x i64] %1, [4 x i64]* %4, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, [5 x i64] %1) #0 { + %3 = alloca %struct.point5, align 8 + %4 = bitcast %struct.point5* %3 to [5 x i64]* + store [5 x i64] %1, [5 x i64]* %4, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, [6 x i64] %1) #0 { + %3 = alloca %struct.point6, align 8 + %4 = bitcast %struct.point6* %3 to [6 x i64]* + store [6 x i64] %1, [6 x i64]* %4, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, [7 x i64] %1) #0 { + %3 = alloca %struct.point7, align 8 + %4 = bitcast %struct.point7* %3 to [7 x i64]* + store [7 x i64] %1, [7 x i64]* %4, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, [8 x i64] %1) #0 { + %3 = alloca %struct.point8, align 8 + %4 = bitcast %struct.point8* %3 to [8 x i64]* + store [8 x i64] %1, [8 x i64]* %4, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_int8.ll b/internal/cabi/_testdata/arch/armv6/struct_int8.ll new file mode 100644 index 00000000..7554849b --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_int8.ll @@ -0,0 +1,325 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define dso_local i8 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = alloca [1 x i32], align 4 + %5 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %6 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 1, i1 false) + %7 = bitcast %struct.point1* %2 to i8* + %8 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 1, i1 false) + %9 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %10 = load i8, i8* %9, align 1 + ret i8 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i16 @demo2([1 x i32] %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca [1 x i32], align 4 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %3 to i8* + %6 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 2, i1 false) + %7 = bitcast %struct.point2* %2 to i8* + %8 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 2, i1 false) + %9 = bitcast %struct.point2* %2 to i16* + %10 = load i16, i16* %9, align 1 + ret i16 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3([1 x i32] %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca [1 x i32], align 4 + %5 = alloca i32, align 4 + store [1 x i32] %0, [1 x i32]* %4, align 4 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [1 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 4 %7, i32 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %8, i8* align 1 %9, i32 3, i1 false) + %10 = bitcast i32* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 1 %11, i32 3, i1 false) + %12 = load i32, i32* %5, align 4 + ret i32 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4([1 x i32] %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = bitcast %struct.point4* %3 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %4, align 1 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 4, i1 false) + %7 = bitcast %struct.point4* %2 to i32* + %8 = load i32, i32* %7, align 1 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point5, align 1 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point5* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 5, i1 false) + %7 = bitcast %struct.point5* %0 to i8* + %8 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point6, align 1 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point6* %0 to i8* + %8 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point7, align 1 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point7* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 7, i1 false) + %7 = bitcast %struct.point7* %0 to i8* + %8 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 7, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 1 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point8, align 1 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 1 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point9, align 1 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point9* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 9, i1 false) + %7 = bitcast %struct.point9* %0 to i8* + %8 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point10, align 1 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point10* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point10* %0 to i8* + %8 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point11, align 1 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 11, i1 false) + %7 = bitcast %struct.point11* %0 to i8* + %8 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 1 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point12, align 1 + %4 = bitcast %struct.point12* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 1 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point13, align 1 + %4 = alloca [4 x i32], align 4 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %3 to i8* + %6 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 13, i1 false) + %7 = bitcast %struct.point13* %0 to i8* + %8 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point14, align 1 + %4 = alloca [4 x i32], align 4 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %3 to i8* + %6 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 14, i1 false) + %7 = bitcast %struct.point14* %0 to i8* + %8 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point15, align 1 + %4 = alloca [4 x i32], align 4 + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point15* %3 to i8* + %6 = bitcast [4 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 15, i1 false) + %7 = bitcast %struct.point15* %0 to i8* + %8 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 1 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point16, align 1 + %4 = bitcast %struct.point16* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 1 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point17, align 1 + %4 = alloca [5 x i32], align 4 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point17* %3 to i8* + %6 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 17, i1 false) + %7 = bitcast %struct.point17* %0 to i8* + %8 = bitcast %struct.point17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point18, align 1 + %4 = alloca [5 x i32], align 4 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point18* %3 to i8* + %6 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 18, i1 false) + %7 = bitcast %struct.point18* %0 to i8* + %8 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point19, align 1 + %4 = alloca [5 x i32], align 4 + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point19* %3 to i8* + %6 = bitcast [5 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 19, i1 false) + %7 = bitcast %struct.point19* %0 to i8* + %8 = bitcast %struct.point19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point20, align 1 + %4 = bitcast %struct.point20* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 1 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_mixed.ll b/internal/cabi/_testdata/arch/armv6/struct_mixed.ll new file mode 100644 index 00000000..9563e11c --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_mixed.ll @@ -0,0 +1,12679 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = bitcast %struct.point1* %3 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %4, align 2 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point1* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point3, align 8 + %4 = bitcast %struct.point3* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point5, align 8 + %4 = bitcast %struct.point5* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point6, align 4 + %4 = bitcast %struct.point6* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo7([1 x i32] %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = bitcast %struct.point7* %3 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %4, align 2 + %5 = bitcast %struct.point7* %2 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point7* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point9, align 8 + %4 = bitcast %struct.point9* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = bitcast %struct.point10* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point11, align 8 + %4 = bitcast %struct.point11* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point12, align 4 + %4 = bitcast %struct.point12* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point15, align 8 + %4 = bitcast %struct.point15* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = bitcast %struct.point16* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point17, align 8 + %4 = bitcast %struct.point17* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point18, align 4 + %4 = bitcast %struct.point18* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point19, align 8 + %4 = bitcast %struct.point19* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point20, align 8 + %4 = bitcast %struct.point20* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo21(%struct.point21* noalias sret(%struct.point21) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point21, align 8 + %4 = bitcast %struct.point21* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo22(%struct.point22* noalias sret(%struct.point22) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point22, align 8 + %4 = bitcast %struct.point22* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point22* %0 to i8* + %6 = bitcast %struct.point22* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo23(%struct.point23* noalias sret(%struct.point23) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point23, align 8 + %4 = bitcast %struct.point23* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point23* %0 to i8* + %6 = bitcast %struct.point23* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo24(%struct.point24* noalias sret(%struct.point24) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point24, align 8 + %4 = bitcast %struct.point24* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point24* %0 to i8* + %6 = bitcast %struct.point24* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo25(%struct.point25* noalias sret(%struct.point25) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point25, align 4 + %4 = bitcast %struct.point25* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point25* %0 to i8* + %6 = bitcast %struct.point25* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo26(%struct.point26* noalias sret(%struct.point26) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point26, align 4 + %4 = bitcast %struct.point26* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point26* %0 to i8* + %6 = bitcast %struct.point26* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo27(%struct.point27* noalias sret(%struct.point27) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point27, align 4 + %4 = bitcast %struct.point27* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point27* %0 to i8* + %6 = bitcast %struct.point27* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo28(%struct.point28* noalias sret(%struct.point28) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point28, align 8 + %4 = bitcast %struct.point28* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point28* %0 to i8* + %6 = bitcast %struct.point28* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo29(%struct.point29* noalias sret(%struct.point29) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point29, align 8 + %4 = bitcast %struct.point29* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point29* %0 to i8* + %6 = bitcast %struct.point29* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo30(%struct.point30* noalias sret(%struct.point30) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point30, align 4 + %4 = bitcast %struct.point30* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point30* %0 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo31(%struct.point31* noalias sret(%struct.point31) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point31, align 8 + %4 = bitcast %struct.point31* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point31* %0 to i8* + %6 = bitcast %struct.point31* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo32(%struct.point32* noalias sret(%struct.point32) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point32, align 8 + %4 = bitcast %struct.point32* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point32* %0 to i8* + %6 = bitcast %struct.point32* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo33(%struct.point33* noalias sret(%struct.point33) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point33, align 8 + %4 = bitcast %struct.point33* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point33* %0 to i8* + %6 = bitcast %struct.point33* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo34(%struct.point34* noalias sret(%struct.point34) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point34, align 8 + %4 = bitcast %struct.point34* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point34* %0 to i8* + %6 = bitcast %struct.point34* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo35(%struct.point35* noalias sret(%struct.point35) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point35, align 8 + %4 = bitcast %struct.point35* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point35* %0 to i8* + %6 = bitcast %struct.point35* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo36(%struct.point36* noalias sret(%struct.point36) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point36, align 8 + %4 = bitcast %struct.point36* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point36* %0 to i8* + %6 = bitcast %struct.point36* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo37(%struct.point37* noalias sret(%struct.point37) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point37, align 4 + %4 = bitcast %struct.point37* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point37* %0 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo38(%struct.point38* noalias sret(%struct.point38) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point38, align 4 + %4 = bitcast %struct.point38* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point38* %0 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo39(%struct.point39* noalias sret(%struct.point39) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point39, align 4 + %4 = bitcast %struct.point39* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point39* %0 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo40(%struct.point40* noalias sret(%struct.point40) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point40, align 8 + %4 = bitcast %struct.point40* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point40* %0 to i8* + %6 = bitcast %struct.point40* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo41(%struct.point41* noalias sret(%struct.point41) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point41, align 4 + %4 = bitcast %struct.point41* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point41* %0 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo42(%struct.point42* noalias sret(%struct.point42) align 8 %0, [2 x i64] %1) #0 { + %3 = alloca %struct.point42, align 8 + %4 = bitcast %struct.point42* %3 to [2 x i64]* + store [2 x i64] %1, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point42* %0 to i8* + %6 = bitcast %struct.point42* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo43(%struct.point43* noalias sret(%struct.point43) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point43, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point43* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point43* %0 to i8* + %8 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo44(%struct.point44* noalias sret(%struct.point44) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point44, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point44* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point44* %0 to i8* + %8 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo45(%struct.point45* noalias sret(%struct.point45) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point45, align 2 + %4 = bitcast %struct.point45* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point45* %0 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo46(%struct.point46* noalias sret(%struct.point46) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point46, align 2 + %4 = bitcast %struct.point46* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point46* %0 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo47(%struct.point47* noalias sret(%struct.point47) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point47, align 4 + %4 = bitcast %struct.point47* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point47* %0 to i8* + %6 = bitcast %struct.point47* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo48(%struct.point48* noalias sret(%struct.point48) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point48, align 4 + %4 = bitcast %struct.point48* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point48* %0 to i8* + %6 = bitcast %struct.point48* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo49(%struct.point49* noalias sret(%struct.point49) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point49* %0 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo50(%struct.point50* noalias sret(%struct.point50) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point50, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point50* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point50* %0 to i8* + %8 = bitcast %struct.point50* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo51(%struct.point51* noalias sret(%struct.point51) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point51, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point51* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point51* %0 to i8* + %8 = bitcast %struct.point51* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo52(%struct.point52* noalias sret(%struct.point52) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point52, align 4 + %4 = bitcast %struct.point52* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point52* %0 to i8* + %6 = bitcast %struct.point52* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo53(%struct.point53* noalias sret(%struct.point53) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point53, align 4 + %4 = bitcast %struct.point53* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point53* %0 to i8* + %6 = bitcast %struct.point53* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo54(%struct.point54* noalias sret(%struct.point54) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point54, align 4 + %4 = bitcast %struct.point54* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point54* %0 to i8* + %6 = bitcast %struct.point54* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo55(%struct.point55* noalias sret(%struct.point55) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point55, align 4 + %4 = bitcast %struct.point55* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point55* %0 to i8* + %6 = bitcast %struct.point55* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo56(%struct.point56* noalias sret(%struct.point56) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point56, align 4 + %4 = bitcast %struct.point56* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point56* %0 to i8* + %6 = bitcast %struct.point56* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo57(%struct.point57* noalias sret(%struct.point57) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point57, align 4 + %4 = bitcast %struct.point57* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point57* %0 to i8* + %6 = bitcast %struct.point57* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo58(%struct.point58* noalias sret(%struct.point58) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point58, align 4 + %4 = bitcast %struct.point58* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point58* %0 to i8* + %6 = bitcast %struct.point58* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo59(%struct.point59* noalias sret(%struct.point59) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point59, align 4 + %4 = bitcast %struct.point59* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point59* %0 to i8* + %6 = bitcast %struct.point59* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo60(%struct.point60* noalias sret(%struct.point60) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point60, align 4 + %4 = bitcast %struct.point60* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point60* %0 to i8* + %6 = bitcast %struct.point60* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo61(%struct.point61* noalias sret(%struct.point61) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point61, align 4 + %4 = bitcast %struct.point61* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point61* %0 to i8* + %6 = bitcast %struct.point61* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo62(%struct.point62* noalias sret(%struct.point62) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point62, align 4 + %4 = bitcast %struct.point62* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point62* %0 to i8* + %6 = bitcast %struct.point62* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo63(%struct.point63* noalias sret(%struct.point63) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point63, align 4 + %4 = bitcast %struct.point63* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point63* %0 to i8* + %6 = bitcast %struct.point63* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo64(%struct.point64* noalias sret(%struct.point64) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point64, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point64* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point64* %0 to i8* + %8 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo65(%struct.point65* noalias sret(%struct.point65) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point65, align 2 + %4 = bitcast %struct.point65* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point65* %0 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo66(%struct.point66* noalias sret(%struct.point66) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point66, align 2 + %4 = bitcast %struct.point66* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point66* %0 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo67(%struct.point67* noalias sret(%struct.point67) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point67, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point67* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point67* %0 to i8* + %8 = bitcast %struct.point67* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo68(%struct.point68* noalias sret(%struct.point68) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point68, align 4 + %4 = bitcast %struct.point68* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point68* %0 to i8* + %6 = bitcast %struct.point68* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo69(%struct.point69* noalias sret(%struct.point69) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point69, align 4 + %4 = bitcast %struct.point69* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point69* %0 to i8* + %6 = bitcast %struct.point69* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo70(%struct.point70* noalias sret(%struct.point70) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point70* %0 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo71(%struct.point71* noalias sret(%struct.point71) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point71, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point71* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point71* %0 to i8* + %8 = bitcast %struct.point71* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo72(%struct.point72* noalias sret(%struct.point72) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point72, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point72* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point72* %0 to i8* + %8 = bitcast %struct.point72* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo73(%struct.point73* noalias sret(%struct.point73) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point73, align 4 + %4 = bitcast %struct.point73* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point73* %0 to i8* + %6 = bitcast %struct.point73* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo74(%struct.point74* noalias sret(%struct.point74) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point74, align 4 + %4 = bitcast %struct.point74* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point74* %0 to i8* + %6 = bitcast %struct.point74* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo75(%struct.point75* noalias sret(%struct.point75) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point75, align 4 + %4 = bitcast %struct.point75* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point75* %0 to i8* + %6 = bitcast %struct.point75* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo76(%struct.point76* noalias sret(%struct.point76) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point76, align 4 + %4 = bitcast %struct.point76* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point76* %0 to i8* + %6 = bitcast %struct.point76* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo77(%struct.point77* noalias sret(%struct.point77) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point77, align 4 + %4 = bitcast %struct.point77* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point77* %0 to i8* + %6 = bitcast %struct.point77* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo78(%struct.point78* noalias sret(%struct.point78) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point78, align 4 + %4 = bitcast %struct.point78* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point78* %0 to i8* + %6 = bitcast %struct.point78* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo79(%struct.point79* noalias sret(%struct.point79) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point79, align 4 + %4 = bitcast %struct.point79* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point79* %0 to i8* + %6 = bitcast %struct.point79* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo80(%struct.point80* noalias sret(%struct.point80) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point80, align 4 + %4 = bitcast %struct.point80* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point80* %0 to i8* + %6 = bitcast %struct.point80* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo81(%struct.point81* noalias sret(%struct.point81) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point81, align 4 + %4 = bitcast %struct.point81* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point81* %0 to i8* + %6 = bitcast %struct.point81* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo82(%struct.point82* noalias sret(%struct.point82) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point82, align 4 + %4 = bitcast %struct.point82* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point82* %0 to i8* + %6 = bitcast %struct.point82* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo83(%struct.point83* noalias sret(%struct.point83) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point83, align 4 + %4 = bitcast %struct.point83* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point83* %0 to i8* + %6 = bitcast %struct.point83* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo84(%struct.point84* noalias sret(%struct.point84) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point84, align 4 + %4 = bitcast %struct.point84* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point84* %0 to i8* + %6 = bitcast %struct.point84* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo85(%struct.point85* noalias sret(%struct.point85) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point85* %0 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo86(%struct.point86* noalias sret(%struct.point86) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point86, align 4 + %4 = bitcast %struct.point86* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point86* %0 to i8* + %6 = bitcast %struct.point86* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo87(%struct.point87* noalias sret(%struct.point87) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point87, align 4 + %4 = bitcast %struct.point87* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point87* %0 to i8* + %6 = bitcast %struct.point87* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo88(%struct.point88* noalias sret(%struct.point88) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point88, align 4 + %4 = bitcast %struct.point88* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point88* %0 to i8* + %6 = bitcast %struct.point88* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo89(%struct.point89* noalias sret(%struct.point89) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point89, align 4 + %4 = bitcast %struct.point89* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point89* %0 to i8* + %6 = bitcast %struct.point89* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo90(%struct.point90* noalias sret(%struct.point90) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point90, align 4 + %4 = bitcast %struct.point90* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point90* %0 to i8* + %6 = bitcast %struct.point90* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo91(%struct.point91* noalias sret(%struct.point91) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point91, align 4 + %4 = bitcast %struct.point91* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point91* %0 to i8* + %6 = bitcast %struct.point91* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo92(%struct.point92* noalias sret(%struct.point92) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point92, align 4 + %4 = bitcast %struct.point92* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point92* %0 to i8* + %6 = bitcast %struct.point92* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo93(%struct.point93* noalias sret(%struct.point93) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point93, align 4 + %4 = bitcast %struct.point93* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point93* %0 to i8* + %6 = bitcast %struct.point93* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo94(%struct.point94* noalias sret(%struct.point94) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point94, align 4 + %4 = bitcast %struct.point94* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point94* %0 to i8* + %6 = bitcast %struct.point94* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo95(%struct.point95* noalias sret(%struct.point95) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point95, align 4 + %4 = bitcast %struct.point95* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point95* %0 to i8* + %6 = bitcast %struct.point95* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo96(%struct.point96* noalias sret(%struct.point96) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point96, align 4 + %4 = bitcast %struct.point96* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point96* %0 to i8* + %6 = bitcast %struct.point96* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo97(%struct.point97* noalias sret(%struct.point97) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point97, align 4 + %4 = bitcast %struct.point97* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point97* %0 to i8* + %6 = bitcast %struct.point97* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo98(%struct.point98* noalias sret(%struct.point98) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point98, align 4 + %4 = bitcast %struct.point98* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point98* %0 to i8* + %6 = bitcast %struct.point98* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo99(%struct.point99* noalias sret(%struct.point99) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point99, align 4 + %4 = bitcast %struct.point99* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point99* %0 to i8* + %6 = bitcast %struct.point99* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo100(%struct.point100* noalias sret(%struct.point100) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point100, align 4 + %4 = bitcast %struct.point100* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point100* %0 to i8* + %6 = bitcast %struct.point100* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo101(%struct.point101* noalias sret(%struct.point101) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point101, align 4 + %4 = bitcast %struct.point101* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point101* %0 to i8* + %6 = bitcast %struct.point101* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo102(%struct.point102* noalias sret(%struct.point102) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point102, align 4 + %4 = bitcast %struct.point102* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point102* %0 to i8* + %6 = bitcast %struct.point102* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo103(%struct.point103* noalias sret(%struct.point103) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point103, align 4 + %4 = bitcast %struct.point103* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point103* %0 to i8* + %6 = bitcast %struct.point103* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo104(%struct.point104* noalias sret(%struct.point104) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point104, align 4 + %4 = bitcast %struct.point104* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point104* %0 to i8* + %6 = bitcast %struct.point104* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo105(%struct.point105* noalias sret(%struct.point105) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point105, align 4 + %4 = bitcast %struct.point105* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point105* %0 to i8* + %6 = bitcast %struct.point105* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo106(%struct.point106* noalias sret(%struct.point106) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point106* %0 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo107(%struct.point107* noalias sret(%struct.point107) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point107, align 4 + %4 = bitcast %struct.point107* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point107* %0 to i8* + %6 = bitcast %struct.point107* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo108(%struct.point108* noalias sret(%struct.point108) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point108, align 4 + %4 = bitcast %struct.point108* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point108* %0 to i8* + %6 = bitcast %struct.point108* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo109(%struct.point109* noalias sret(%struct.point109) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point109, align 4 + %4 = bitcast %struct.point109* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point109* %0 to i8* + %6 = bitcast %struct.point109* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo110(%struct.point110* noalias sret(%struct.point110) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point110, align 4 + %4 = bitcast %struct.point110* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point110* %0 to i8* + %6 = bitcast %struct.point110* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo111(%struct.point111* noalias sret(%struct.point111) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point111, align 4 + %4 = bitcast %struct.point111* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point111* %0 to i8* + %6 = bitcast %struct.point111* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo112(%struct.point112* noalias sret(%struct.point112) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point112, align 4 + %4 = bitcast %struct.point112* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point112* %0 to i8* + %6 = bitcast %struct.point112* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo113(%struct.point113* noalias sret(%struct.point113) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point113, align 4 + %4 = bitcast %struct.point113* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point113* %0 to i8* + %6 = bitcast %struct.point113* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo114(%struct.point114* noalias sret(%struct.point114) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point114, align 4 + %4 = bitcast %struct.point114* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point114* %0 to i8* + %6 = bitcast %struct.point114* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo115(%struct.point115* noalias sret(%struct.point115) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point115, align 4 + %4 = bitcast %struct.point115* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point115* %0 to i8* + %6 = bitcast %struct.point115* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo116(%struct.point116* noalias sret(%struct.point116) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point116, align 4 + %4 = bitcast %struct.point116* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point116* %0 to i8* + %6 = bitcast %struct.point116* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo117(%struct.point117* noalias sret(%struct.point117) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point117, align 4 + %4 = bitcast %struct.point117* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point117* %0 to i8* + %6 = bitcast %struct.point117* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo118(%struct.point118* noalias sret(%struct.point118) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point118, align 4 + %4 = bitcast %struct.point118* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point118* %0 to i8* + %6 = bitcast %struct.point118* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo119(%struct.point119* noalias sret(%struct.point119) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point119, align 4 + %4 = bitcast %struct.point119* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point119* %0 to i8* + %6 = bitcast %struct.point119* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo120(%struct.point120* noalias sret(%struct.point120) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point120, align 4 + %4 = bitcast %struct.point120* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point120* %0 to i8* + %6 = bitcast %struct.point120* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo121(%struct.point121* noalias sret(%struct.point121) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point121, align 4 + %4 = bitcast %struct.point121* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point121* %0 to i8* + %6 = bitcast %struct.point121* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo122(%struct.point122* noalias sret(%struct.point122) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point122, align 4 + %4 = bitcast %struct.point122* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point122* %0 to i8* + %6 = bitcast %struct.point122* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo123(%struct.point123* noalias sret(%struct.point123) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point123, align 4 + %4 = bitcast %struct.point123* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point123* %0 to i8* + %6 = bitcast %struct.point123* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo124(%struct.point124* noalias sret(%struct.point124) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point124, align 4 + %4 = bitcast %struct.point124* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point124* %0 to i8* + %6 = bitcast %struct.point124* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo125(%struct.point125* noalias sret(%struct.point125) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point125, align 4 + %4 = bitcast %struct.point125* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point125* %0 to i8* + %6 = bitcast %struct.point125* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo126(%struct.point126* noalias sret(%struct.point126) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point126, align 4 + %4 = bitcast %struct.point126* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point126* %0 to i8* + %6 = bitcast %struct.point126* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo127(%struct.point127* noalias sret(%struct.point127) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point127, align 4 + %4 = bitcast %struct.point127* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point127* %0 to i8* + %6 = bitcast %struct.point127* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo128(%struct.point128* noalias sret(%struct.point128) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point128, align 4 + %4 = bitcast %struct.point128* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point128* %0 to i8* + %6 = bitcast %struct.point128* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo129(%struct.point129* noalias sret(%struct.point129) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point129, align 4 + %4 = bitcast %struct.point129* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point129* %0 to i8* + %6 = bitcast %struct.point129* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo130(%struct.point130* noalias sret(%struct.point130) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point130, align 4 + %4 = bitcast %struct.point130* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point130* %0 to i8* + %6 = bitcast %struct.point130* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo131(%struct.point131* noalias sret(%struct.point131) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point131, align 4 + %4 = bitcast %struct.point131* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point131* %0 to i8* + %6 = bitcast %struct.point131* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo132(%struct.point132* noalias sret(%struct.point132) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point132, align 4 + %4 = bitcast %struct.point132* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point132* %0 to i8* + %6 = bitcast %struct.point132* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo133(%struct.point133* noalias sret(%struct.point133) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point133, align 4 + %4 = bitcast %struct.point133* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point133* %0 to i8* + %6 = bitcast %struct.point133* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo134(%struct.point134* noalias sret(%struct.point134) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point134, align 4 + %4 = bitcast %struct.point134* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point134* %0 to i8* + %6 = bitcast %struct.point134* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo135(%struct.point135* noalias sret(%struct.point135) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point135, align 4 + %4 = bitcast %struct.point135* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point135* %0 to i8* + %6 = bitcast %struct.point135* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo136(%struct.point136* noalias sret(%struct.point136) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point136, align 4 + %4 = bitcast %struct.point136* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point136* %0 to i8* + %6 = bitcast %struct.point136* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo137(%struct.point137* noalias sret(%struct.point137) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point137, align 4 + %4 = bitcast %struct.point137* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point137* %0 to i8* + %6 = bitcast %struct.point137* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo138(%struct.point138* noalias sret(%struct.point138) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point138, align 4 + %4 = bitcast %struct.point138* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point138* %0 to i8* + %6 = bitcast %struct.point138* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point139, align 4 + %4 = bitcast %struct.point139* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point140, align 4 + %4 = bitcast %struct.point140* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point141, align 4 + %4 = bitcast %struct.point141* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point142, align 4 + %4 = bitcast %struct.point142* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo143(%struct.point143* noalias sret(%struct.point143) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point143, align 4 + %4 = bitcast %struct.point143* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point143* %0 to i8* + %6 = bitcast %struct.point143* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point144, align 4 + %4 = bitcast %struct.point144* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point145, align 4 + %4 = bitcast %struct.point145* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point146, align 4 + %4 = bitcast %struct.point146* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point147, align 4 + %4 = bitcast %struct.point147* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo148(%struct.point148* noalias sret(%struct.point148) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point148, align 4 + %4 = bitcast %struct.point148* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point148* %0 to i8* + %6 = bitcast %struct.point148* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo149(%struct.point149* noalias sret(%struct.point149) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point149, align 4 + %4 = bitcast %struct.point149* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point149* %0 to i8* + %6 = bitcast %struct.point149* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo150(%struct.point150* noalias sret(%struct.point150) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point150, align 4 + %4 = bitcast %struct.point150* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point150* %0 to i8* + %6 = bitcast %struct.point150* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo151(%struct.point151* noalias sret(%struct.point151) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point151, align 4 + %4 = bitcast %struct.point151* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point151* %0 to i8* + %6 = bitcast %struct.point151* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo152(%struct.point152* noalias sret(%struct.point152) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point152, align 4 + %4 = bitcast %struct.point152* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point152* %0 to i8* + %6 = bitcast %struct.point152* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo153(%struct.point153* noalias sret(%struct.point153) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point153, align 4 + %4 = bitcast %struct.point153* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point153* %0 to i8* + %6 = bitcast %struct.point153* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo154(%struct.point154* noalias sret(%struct.point154) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point154, align 4 + %4 = bitcast %struct.point154* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point154* %0 to i8* + %6 = bitcast %struct.point154* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo155(%struct.point155* noalias sret(%struct.point155) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point155, align 4 + %4 = bitcast %struct.point155* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point155* %0 to i8* + %6 = bitcast %struct.point155* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo156(%struct.point156* noalias sret(%struct.point156) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point156, align 4 + %4 = bitcast %struct.point156* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point156* %0 to i8* + %6 = bitcast %struct.point156* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo157(%struct.point157* noalias sret(%struct.point157) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point157, align 4 + %4 = bitcast %struct.point157* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point157* %0 to i8* + %6 = bitcast %struct.point157* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo158(%struct.point158* noalias sret(%struct.point158) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point158, align 4 + %4 = bitcast %struct.point158* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point158* %0 to i8* + %6 = bitcast %struct.point158* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo159(%struct.point159* noalias sret(%struct.point159) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point159, align 4 + %4 = bitcast %struct.point159* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point159* %0 to i8* + %6 = bitcast %struct.point159* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point160, align 4 + %4 = bitcast %struct.point160* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point161, align 4 + %4 = bitcast %struct.point161* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point162, align 4 + %4 = bitcast %struct.point162* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point163, align 4 + %4 = bitcast %struct.point163* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo164(%struct.point164* noalias sret(%struct.point164) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point164, align 4 + %4 = bitcast %struct.point164* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point164* %0 to i8* + %6 = bitcast %struct.point164* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point165, align 4 + %4 = bitcast %struct.point165* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point166, align 4 + %4 = bitcast %struct.point166* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point167, align 4 + %4 = bitcast %struct.point167* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point168, align 4 + %4 = bitcast %struct.point168* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo169(%struct.point169* noalias sret(%struct.point169) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point169, align 4 + %4 = bitcast %struct.point169* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point169* %0 to i8* + %6 = bitcast %struct.point169* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo170(%struct.point170* noalias sret(%struct.point170) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point170, align 4 + %4 = bitcast %struct.point170* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point170* %0 to i8* + %6 = bitcast %struct.point170* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo171(%struct.point171* noalias sret(%struct.point171) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point171, align 4 + %4 = bitcast %struct.point171* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point171* %0 to i8* + %6 = bitcast %struct.point171* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo172(%struct.point172* noalias sret(%struct.point172) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point172, align 4 + %4 = bitcast %struct.point172* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point172* %0 to i8* + %6 = bitcast %struct.point172* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point173, align 4 + %4 = bitcast %struct.point173* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point174, align 4 + %4 = bitcast %struct.point174* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo175(%struct.point175* noalias sret(%struct.point175) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point175, align 4 + %4 = bitcast %struct.point175* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point175* %0 to i8* + %6 = bitcast %struct.point175* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo176(%struct.point176* noalias sret(%struct.point176) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point176, align 4 + %4 = bitcast %struct.point176* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point176* %0 to i8* + %6 = bitcast %struct.point176* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo177(%struct.point177* noalias sret(%struct.point177) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point177, align 4 + %4 = bitcast %struct.point177* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point177* %0 to i8* + %6 = bitcast %struct.point177* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point178, align 4 + %4 = bitcast %struct.point178* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point179, align 4 + %4 = bitcast %struct.point179* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo180(%struct.point180* noalias sret(%struct.point180) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point180, align 4 + %4 = bitcast %struct.point180* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point180* %0 to i8* + %6 = bitcast %struct.point180* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point181, align 4 + %4 = bitcast %struct.point181* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point182, align 4 + %4 = bitcast %struct.point182* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point183, align 4 + %4 = bitcast %struct.point183* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point184, align 4 + %4 = bitcast %struct.point184* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo185(%struct.point185* noalias sret(%struct.point185) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point185, align 4 + %4 = bitcast %struct.point185* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point185* %0 to i8* + %6 = bitcast %struct.point185* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point186, align 4 + %4 = bitcast %struct.point186* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point187, align 4 + %4 = bitcast %struct.point187* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point188, align 4 + %4 = bitcast %struct.point188* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point189, align 4 + %4 = bitcast %struct.point189* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo190(%struct.point190* noalias sret(%struct.point190) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point190, align 4 + %4 = bitcast %struct.point190* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point190* %0 to i8* + %6 = bitcast %struct.point190* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo191(%struct.point191* noalias sret(%struct.point191) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point191, align 4 + %4 = bitcast %struct.point191* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point191* %0 to i8* + %6 = bitcast %struct.point191* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo192(%struct.point192* noalias sret(%struct.point192) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point192, align 4 + %4 = bitcast %struct.point192* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point192* %0 to i8* + %6 = bitcast %struct.point192* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo193(%struct.point193* noalias sret(%struct.point193) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point193, align 4 + %4 = bitcast %struct.point193* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point193* %0 to i8* + %6 = bitcast %struct.point193* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point194, align 4 + %4 = bitcast %struct.point194* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point195, align 4 + %4 = bitcast %struct.point195* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo196(%struct.point196* noalias sret(%struct.point196) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point196, align 4 + %4 = bitcast %struct.point196* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point196* %0 to i8* + %6 = bitcast %struct.point196* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo197(%struct.point197* noalias sret(%struct.point197) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point197, align 4 + %4 = bitcast %struct.point197* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point197* %0 to i8* + %6 = bitcast %struct.point197* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo198(%struct.point198* noalias sret(%struct.point198) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point198, align 4 + %4 = bitcast %struct.point198* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point198* %0 to i8* + %6 = bitcast %struct.point198* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point199, align 4 + %4 = bitcast %struct.point199* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point200, align 4 + %4 = bitcast %struct.point200* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo201(%struct.point201* noalias sret(%struct.point201) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point201, align 4 + %4 = bitcast %struct.point201* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point201* %0 to i8* + %6 = bitcast %struct.point201* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point202, align 4 + %4 = bitcast %struct.point202* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point203, align 4 + %4 = bitcast %struct.point203* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point204, align 4 + %4 = bitcast %struct.point204* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point205, align 4 + %4 = bitcast %struct.point205* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo206(%struct.point206* noalias sret(%struct.point206) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point206, align 4 + %4 = bitcast %struct.point206* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point206* %0 to i8* + %6 = bitcast %struct.point206* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point207, align 4 + %4 = bitcast %struct.point207* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point208, align 4 + %4 = bitcast %struct.point208* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point209, align 4 + %4 = bitcast %struct.point209* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point210, align 4 + %4 = bitcast %struct.point210* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo211(%struct.point211* noalias sret(%struct.point211) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point211, align 4 + %4 = bitcast %struct.point211* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point211* %0 to i8* + %6 = bitcast %struct.point211* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo212(%struct.point212* noalias sret(%struct.point212) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point212, align 4 + %4 = bitcast %struct.point212* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point212* %0 to i8* + %6 = bitcast %struct.point212* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo213(%struct.point213* noalias sret(%struct.point213) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point213, align 4 + %4 = bitcast %struct.point213* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point213* %0 to i8* + %6 = bitcast %struct.point213* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo214(%struct.point214* noalias sret(%struct.point214) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point214, align 4 + %4 = bitcast %struct.point214* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point214* %0 to i8* + %6 = bitcast %struct.point214* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo215(%struct.point215* noalias sret(%struct.point215) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point215, align 4 + %4 = bitcast %struct.point215* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point215* %0 to i8* + %6 = bitcast %struct.point215* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo216(%struct.point216* noalias sret(%struct.point216) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point216, align 4 + %4 = bitcast %struct.point216* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point216* %0 to i8* + %6 = bitcast %struct.point216* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo217(%struct.point217* noalias sret(%struct.point217) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point217, align 4 + %4 = bitcast %struct.point217* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point217* %0 to i8* + %6 = bitcast %struct.point217* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo218(%struct.point218* noalias sret(%struct.point218) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point218, align 4 + %4 = bitcast %struct.point218* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point218* %0 to i8* + %6 = bitcast %struct.point218* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo219(%struct.point219* noalias sret(%struct.point219) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point219, align 4 + %4 = bitcast %struct.point219* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point219* %0 to i8* + %6 = bitcast %struct.point219* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo220(%struct.point220* noalias sret(%struct.point220) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point220, align 4 + %4 = bitcast %struct.point220* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point220* %0 to i8* + %6 = bitcast %struct.point220* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo221(%struct.point221* noalias sret(%struct.point221) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point221, align 4 + %4 = bitcast %struct.point221* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point221* %0 to i8* + %6 = bitcast %struct.point221* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo222(%struct.point222* noalias sret(%struct.point222) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point222, align 4 + %4 = bitcast %struct.point222* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point222* %0 to i8* + %6 = bitcast %struct.point222* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point223, align 4 + %4 = bitcast %struct.point223* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point224, align 4 + %4 = bitcast %struct.point224* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point225, align 4 + %4 = bitcast %struct.point225* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point226, align 4 + %4 = bitcast %struct.point226* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo227(%struct.point227* noalias sret(%struct.point227) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point227, align 4 + %4 = bitcast %struct.point227* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point227* %0 to i8* + %6 = bitcast %struct.point227* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point228, align 4 + %4 = bitcast %struct.point228* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point229, align 4 + %4 = bitcast %struct.point229* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point230, align 4 + %4 = bitcast %struct.point230* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point231, align 4 + %4 = bitcast %struct.point231* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo232(%struct.point232* noalias sret(%struct.point232) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point232, align 4 + %4 = bitcast %struct.point232* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point232* %0 to i8* + %6 = bitcast %struct.point232* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo233(%struct.point233* noalias sret(%struct.point233) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point233, align 4 + %4 = bitcast %struct.point233* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point233* %0 to i8* + %6 = bitcast %struct.point233* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo234(%struct.point234* noalias sret(%struct.point234) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point234, align 4 + %4 = bitcast %struct.point234* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point234* %0 to i8* + %6 = bitcast %struct.point234* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo235(%struct.point235* noalias sret(%struct.point235) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point235, align 4 + %4 = bitcast %struct.point235* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point235* %0 to i8* + %6 = bitcast %struct.point235* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo236(%struct.point236* noalias sret(%struct.point236) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point236, align 4 + %4 = bitcast %struct.point236* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point236* %0 to i8* + %6 = bitcast %struct.point236* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo237(%struct.point237* noalias sret(%struct.point237) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point237, align 4 + %4 = bitcast %struct.point237* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point237* %0 to i8* + %6 = bitcast %struct.point237* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo238(%struct.point238* noalias sret(%struct.point238) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point238, align 4 + %4 = bitcast %struct.point238* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point238* %0 to i8* + %6 = bitcast %struct.point238* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo239(%struct.point239* noalias sret(%struct.point239) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point239, align 4 + %4 = bitcast %struct.point239* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point239* %0 to i8* + %6 = bitcast %struct.point239* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo240(%struct.point240* noalias sret(%struct.point240) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point240, align 4 + %4 = bitcast %struct.point240* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point240* %0 to i8* + %6 = bitcast %struct.point240* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo241(%struct.point241* noalias sret(%struct.point241) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point241, align 4 + %4 = bitcast %struct.point241* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point241* %0 to i8* + %6 = bitcast %struct.point241* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo242(%struct.point242* noalias sret(%struct.point242) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point242, align 4 + %4 = bitcast %struct.point242* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point242* %0 to i8* + %6 = bitcast %struct.point242* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo243(%struct.point243* noalias sret(%struct.point243) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point243, align 4 + %4 = bitcast %struct.point243* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point243* %0 to i8* + %6 = bitcast %struct.point243* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point244, align 4 + %4 = bitcast %struct.point244* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point245, align 4 + %4 = bitcast %struct.point245* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point246, align 4 + %4 = bitcast %struct.point246* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point247, align 4 + %4 = bitcast %struct.point247* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo248(%struct.point248* noalias sret(%struct.point248) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point248, align 4 + %4 = bitcast %struct.point248* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point248* %0 to i8* + %6 = bitcast %struct.point248* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point249, align 4 + %4 = bitcast %struct.point249* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point250, align 4 + %4 = bitcast %struct.point250* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point251, align 4 + %4 = bitcast %struct.point251* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point252, align 4 + %4 = bitcast %struct.point252* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo253(%struct.point253* noalias sret(%struct.point253) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point253, align 4 + %4 = bitcast %struct.point253* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point253* %0 to i8* + %6 = bitcast %struct.point253* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo254(%struct.point254* noalias sret(%struct.point254) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point254, align 4 + %4 = bitcast %struct.point254* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point254* %0 to i8* + %6 = bitcast %struct.point254* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo255(%struct.point255* noalias sret(%struct.point255) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point255, align 4 + %4 = bitcast %struct.point255* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point255* %0 to i8* + %6 = bitcast %struct.point255* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo256(%struct.point256* noalias sret(%struct.point256) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point256, align 4 + %4 = bitcast %struct.point256* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point256* %0 to i8* + %6 = bitcast %struct.point256* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point257, align 4 + %4 = bitcast %struct.point257* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point258, align 4 + %4 = bitcast %struct.point258* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo259(%struct.point259* noalias sret(%struct.point259) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point259, align 4 + %4 = bitcast %struct.point259* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point259* %0 to i8* + %6 = bitcast %struct.point259* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo260(%struct.point260* noalias sret(%struct.point260) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point260, align 4 + %4 = bitcast %struct.point260* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point260* %0 to i8* + %6 = bitcast %struct.point260* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo261(%struct.point261* noalias sret(%struct.point261) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point261, align 4 + %4 = bitcast %struct.point261* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point261* %0 to i8* + %6 = bitcast %struct.point261* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point262, align 4 + %4 = bitcast %struct.point262* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point263, align 4 + %4 = bitcast %struct.point263* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo264(%struct.point264* noalias sret(%struct.point264) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point264, align 4 + %4 = bitcast %struct.point264* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point264* %0 to i8* + %6 = bitcast %struct.point264* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point265, align 4 + %4 = bitcast %struct.point265* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point266, align 4 + %4 = bitcast %struct.point266* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point267, align 4 + %4 = bitcast %struct.point267* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point268, align 4 + %4 = bitcast %struct.point268* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo269(%struct.point269* noalias sret(%struct.point269) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point269, align 4 + %4 = bitcast %struct.point269* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point269* %0 to i8* + %6 = bitcast %struct.point269* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point270, align 4 + %4 = bitcast %struct.point270* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point271, align 4 + %4 = bitcast %struct.point271* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point272, align 4 + %4 = bitcast %struct.point272* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point273, align 4 + %4 = bitcast %struct.point273* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo274(%struct.point274* noalias sret(%struct.point274) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point274, align 4 + %4 = bitcast %struct.point274* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point274* %0 to i8* + %6 = bitcast %struct.point274* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo275(%struct.point275* noalias sret(%struct.point275) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point275, align 4 + %4 = bitcast %struct.point275* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point275* %0 to i8* + %6 = bitcast %struct.point275* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo276(%struct.point276* noalias sret(%struct.point276) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point276, align 4 + %4 = bitcast %struct.point276* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point276* %0 to i8* + %6 = bitcast %struct.point276* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo277(%struct.point277* noalias sret(%struct.point277) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point277, align 4 + %4 = bitcast %struct.point277* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point277* %0 to i8* + %6 = bitcast %struct.point277* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point278, align 4 + %4 = bitcast %struct.point278* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point279, align 4 + %4 = bitcast %struct.point279* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo280(%struct.point280* noalias sret(%struct.point280) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point280, align 4 + %4 = bitcast %struct.point280* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point280* %0 to i8* + %6 = bitcast %struct.point280* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo281(%struct.point281* noalias sret(%struct.point281) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point281, align 4 + %4 = bitcast %struct.point281* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point281* %0 to i8* + %6 = bitcast %struct.point281* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo282(%struct.point282* noalias sret(%struct.point282) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point282, align 4 + %4 = bitcast %struct.point282* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point282* %0 to i8* + %6 = bitcast %struct.point282* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point283, align 4 + %4 = bitcast %struct.point283* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point284, align 4 + %4 = bitcast %struct.point284* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo285(%struct.point285* noalias sret(%struct.point285) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point285, align 4 + %4 = bitcast %struct.point285* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point285* %0 to i8* + %6 = bitcast %struct.point285* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point286, align 4 + %4 = bitcast %struct.point286* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point287, align 4 + %4 = bitcast %struct.point287* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point288, align 4 + %4 = bitcast %struct.point288* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point289, align 4 + %4 = bitcast %struct.point289* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo290(%struct.point290* noalias sret(%struct.point290) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point290, align 4 + %4 = bitcast %struct.point290* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point290* %0 to i8* + %6 = bitcast %struct.point290* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point291, align 4 + %4 = bitcast %struct.point291* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point292, align 4 + %4 = bitcast %struct.point292* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point293, align 4 + %4 = bitcast %struct.point293* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point294, align 4 + %4 = bitcast %struct.point294* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo295([1 x i32] %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = bitcast %struct.point295* %3 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %4, align 2 + %5 = bitcast %struct.point295* %2 to i8* + %6 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 4, i1 false) + %7 = bitcast %struct.point295* %2 to i32* + %8 = load i32, i32* %7, align 2 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo296(%struct.point296* noalias sret(%struct.point296) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point296, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point296* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point296* %0 to i8* + %8 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo297(%struct.point297* noalias sret(%struct.point297) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point297, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point297* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point297* %0 to i8* + %8 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo298(%struct.point298* noalias sret(%struct.point298) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point298, align 2 + %4 = bitcast %struct.point298* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point298* %0 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo299(%struct.point299* noalias sret(%struct.point299) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point299, align 4 + %4 = bitcast %struct.point299* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point299* %0 to i8* + %6 = bitcast %struct.point299* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo300(%struct.point300* noalias sret(%struct.point300) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point300, align 4 + %4 = bitcast %struct.point300* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point300* %0 to i8* + %6 = bitcast %struct.point300* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo301(%struct.point301* noalias sret(%struct.point301) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point301, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point301* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point301* %0 to i8* + %8 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo302(%struct.point302* noalias sret(%struct.point302) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point302, align 2 + %4 = bitcast %struct.point302* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point302* %0 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo303(%struct.point303* noalias sret(%struct.point303) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point303, align 2 + %4 = bitcast %struct.point303* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point303* %0 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo304(%struct.point304* noalias sret(%struct.point304) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point304, align 4 + %4 = bitcast %struct.point304* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point304* %0 to i8* + %6 = bitcast %struct.point304* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo305(%struct.point305* noalias sret(%struct.point305) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point305, align 4 + %4 = bitcast %struct.point305* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point305* %0 to i8* + %6 = bitcast %struct.point305* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo306(%struct.point306* noalias sret(%struct.point306) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point306* %0 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo307(%struct.point307* noalias sret(%struct.point307) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point307, align 4 + %4 = bitcast %struct.point307* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point307* %0 to i8* + %6 = bitcast %struct.point307* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo308(%struct.point308* noalias sret(%struct.point308) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point308, align 4 + %4 = bitcast %struct.point308* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point308* %0 to i8* + %6 = bitcast %struct.point308* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo309(%struct.point309* noalias sret(%struct.point309) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point309, align 4 + %4 = bitcast %struct.point309* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point309* %0 to i8* + %6 = bitcast %struct.point309* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo310(%struct.point310* noalias sret(%struct.point310) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point310, align 4 + %4 = bitcast %struct.point310* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point310* %0 to i8* + %6 = bitcast %struct.point310* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo311(%struct.point311* noalias sret(%struct.point311) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point311* %0 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo312(%struct.point312* noalias sret(%struct.point312) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point312, align 4 + %4 = bitcast %struct.point312* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point312* %0 to i8* + %6 = bitcast %struct.point312* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo313(%struct.point313* noalias sret(%struct.point313) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point313, align 4 + %4 = bitcast %struct.point313* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point313* %0 to i8* + %6 = bitcast %struct.point313* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo314(%struct.point314* noalias sret(%struct.point314) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point314, align 4 + %4 = bitcast %struct.point314* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point314* %0 to i8* + %6 = bitcast %struct.point314* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo315(%struct.point315* noalias sret(%struct.point315) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point315, align 4 + %4 = bitcast %struct.point315* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point315* %0 to i8* + %6 = bitcast %struct.point315* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo316(%struct.point316* noalias sret(%struct.point316) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point316, align 2 + %4 = alloca [2 x i32], align 4 + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point316* %3 to i8* + %6 = bitcast [2 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + %7 = bitcast %struct.point316* %0 to i8* + %8 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo317(%struct.point317* noalias sret(%struct.point317) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point317, align 2 + %4 = bitcast %struct.point317* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point317* %0 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo318(%struct.point318* noalias sret(%struct.point318) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point318, align 2 + %4 = bitcast %struct.point318* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point318* %0 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo319(%struct.point319* noalias sret(%struct.point319) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point319, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point319* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point319* %0 to i8* + %8 = bitcast %struct.point319* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo320(%struct.point320* noalias sret(%struct.point320) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point320, align 4 + %4 = bitcast %struct.point320* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point320* %0 to i8* + %6 = bitcast %struct.point320* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo321(%struct.point321* noalias sret(%struct.point321) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point321, align 4 + %4 = bitcast %struct.point321* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point321* %0 to i8* + %6 = bitcast %struct.point321* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo322(%struct.point322* noalias sret(%struct.point322) align 2 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 2 + %5 = bitcast %struct.point322* %0 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo323(%struct.point323* noalias sret(%struct.point323) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point323, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point323* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point323* %0 to i8* + %8 = bitcast %struct.point323* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo324(%struct.point324* noalias sret(%struct.point324) align 2 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point324, align 2 + %4 = alloca [3 x i32], align 4 + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point324* %3 to i8* + %6 = bitcast [3 x i32]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + %7 = bitcast %struct.point324* %0 to i8* + %8 = bitcast %struct.point324* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %7, i8* align 2 %8, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo325(%struct.point325* noalias sret(%struct.point325) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point325, align 4 + %4 = bitcast %struct.point325* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point325* %0 to i8* + %6 = bitcast %struct.point325* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo326(%struct.point326* noalias sret(%struct.point326) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point326, align 4 + %4 = bitcast %struct.point326* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point326* %0 to i8* + %6 = bitcast %struct.point326* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo327(%struct.point327* noalias sret(%struct.point327) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point327, align 4 + %4 = bitcast %struct.point327* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point327* %0 to i8* + %6 = bitcast %struct.point327* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo328(%struct.point328* noalias sret(%struct.point328) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point328, align 4 + %4 = bitcast %struct.point328* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point328* %0 to i8* + %6 = bitcast %struct.point328* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo329(%struct.point329* noalias sret(%struct.point329) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point329, align 4 + %4 = bitcast %struct.point329* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point329* %0 to i8* + %6 = bitcast %struct.point329* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo330(%struct.point330* noalias sret(%struct.point330) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point330, align 4 + %4 = bitcast %struct.point330* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point330* %0 to i8* + %6 = bitcast %struct.point330* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo331(%struct.point331* noalias sret(%struct.point331) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point331, align 4 + %4 = bitcast %struct.point331* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point331* %0 to i8* + %6 = bitcast %struct.point331* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo332(%struct.point332* noalias sret(%struct.point332) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point332, align 4 + %4 = bitcast %struct.point332* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point332* %0 to i8* + %6 = bitcast %struct.point332* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo333(%struct.point333* noalias sret(%struct.point333) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point333, align 4 + %4 = bitcast %struct.point333* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point333* %0 to i8* + %6 = bitcast %struct.point333* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo334(%struct.point334* noalias sret(%struct.point334) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point334, align 4 + %4 = bitcast %struct.point334* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point334* %0 to i8* + %6 = bitcast %struct.point334* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo335(%struct.point335* noalias sret(%struct.point335) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point335, align 4 + %4 = bitcast %struct.point335* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point335* %0 to i8* + %6 = bitcast %struct.point335* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo336(%struct.point336* noalias sret(%struct.point336) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point336, align 4 + %4 = bitcast %struct.point336* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point336* %0 to i8* + %6 = bitcast %struct.point336* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo337(%struct.point337* noalias sret(%struct.point337) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point337* %0 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo338(%struct.point338* noalias sret(%struct.point338) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point338, align 4 + %4 = bitcast %struct.point338* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point338* %0 to i8* + %6 = bitcast %struct.point338* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo339(%struct.point339* noalias sret(%struct.point339) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point339, align 4 + %4 = bitcast %struct.point339* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point339* %0 to i8* + %6 = bitcast %struct.point339* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo340(%struct.point340* noalias sret(%struct.point340) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point340, align 4 + %4 = bitcast %struct.point340* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point340* %0 to i8* + %6 = bitcast %struct.point340* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo341(%struct.point341* noalias sret(%struct.point341) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point341, align 4 + %4 = bitcast %struct.point341* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point341* %0 to i8* + %6 = bitcast %struct.point341* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo342(%struct.point342* noalias sret(%struct.point342) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point342, align 4 + %4 = bitcast %struct.point342* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point342* %0 to i8* + %6 = bitcast %struct.point342* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo343(%struct.point343* noalias sret(%struct.point343) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point343, align 4 + %4 = bitcast %struct.point343* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point343* %0 to i8* + %6 = bitcast %struct.point343* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo344(%struct.point344* noalias sret(%struct.point344) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point344, align 4 + %4 = bitcast %struct.point344* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point344* %0 to i8* + %6 = bitcast %struct.point344* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo345(%struct.point345* noalias sret(%struct.point345) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point345, align 4 + %4 = bitcast %struct.point345* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point345* %0 to i8* + %6 = bitcast %struct.point345* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo346(%struct.point346* noalias sret(%struct.point346) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point346, align 4 + %4 = bitcast %struct.point346* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point346* %0 to i8* + %6 = bitcast %struct.point346* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo347(%struct.point347* noalias sret(%struct.point347) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point347, align 4 + %4 = bitcast %struct.point347* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point347* %0 to i8* + %6 = bitcast %struct.point347* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo348(%struct.point348* noalias sret(%struct.point348) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point348, align 4 + %4 = bitcast %struct.point348* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point348* %0 to i8* + %6 = bitcast %struct.point348* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo349(%struct.point349* noalias sret(%struct.point349) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point349, align 4 + %4 = bitcast %struct.point349* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point349* %0 to i8* + %6 = bitcast %struct.point349* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo350(%struct.point350* noalias sret(%struct.point350) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point350, align 4 + %4 = bitcast %struct.point350* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point350* %0 to i8* + %6 = bitcast %struct.point350* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo351(%struct.point351* noalias sret(%struct.point351) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point351, align 4 + %4 = bitcast %struct.point351* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point351* %0 to i8* + %6 = bitcast %struct.point351* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo352(%struct.point352* noalias sret(%struct.point352) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point352, align 4 + %4 = bitcast %struct.point352* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point352* %0 to i8* + %6 = bitcast %struct.point352* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo353(%struct.point353* noalias sret(%struct.point353) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point353, align 4 + %4 = bitcast %struct.point353* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point353* %0 to i8* + %6 = bitcast %struct.point353* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo354(%struct.point354* noalias sret(%struct.point354) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point354, align 4 + %4 = bitcast %struct.point354* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point354* %0 to i8* + %6 = bitcast %struct.point354* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo355(%struct.point355* noalias sret(%struct.point355) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point355, align 4 + %4 = bitcast %struct.point355* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point355* %0 to i8* + %6 = bitcast %struct.point355* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo356(%struct.point356* noalias sret(%struct.point356) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point356, align 4 + %4 = bitcast %struct.point356* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point356* %0 to i8* + %6 = bitcast %struct.point356* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo357(%struct.point357* noalias sret(%struct.point357) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point357, align 4 + %4 = bitcast %struct.point357* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point357* %0 to i8* + %6 = bitcast %struct.point357* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo358(%struct.point358* noalias sret(%struct.point358) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point358* %0 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo359(%struct.point359* noalias sret(%struct.point359) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point359, align 4 + %4 = bitcast %struct.point359* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point359* %0 to i8* + %6 = bitcast %struct.point359* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo360(%struct.point360* noalias sret(%struct.point360) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point360, align 4 + %4 = bitcast %struct.point360* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point360* %0 to i8* + %6 = bitcast %struct.point360* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo361(%struct.point361* noalias sret(%struct.point361) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point361, align 4 + %4 = bitcast %struct.point361* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point361* %0 to i8* + %6 = bitcast %struct.point361* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo362(%struct.point362* noalias sret(%struct.point362) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point362, align 4 + %4 = bitcast %struct.point362* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point362* %0 to i8* + %6 = bitcast %struct.point362* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo363(%struct.point363* noalias sret(%struct.point363) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point363, align 4 + %4 = bitcast %struct.point363* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point363* %0 to i8* + %6 = bitcast %struct.point363* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo364(%struct.point364* noalias sret(%struct.point364) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point364, align 4 + %4 = bitcast %struct.point364* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point364* %0 to i8* + %6 = bitcast %struct.point364* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo365(%struct.point365* noalias sret(%struct.point365) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point365, align 4 + %4 = bitcast %struct.point365* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point365* %0 to i8* + %6 = bitcast %struct.point365* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo366(%struct.point366* noalias sret(%struct.point366) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point366, align 4 + %4 = bitcast %struct.point366* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point366* %0 to i8* + %6 = bitcast %struct.point366* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo367(%struct.point367* noalias sret(%struct.point367) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point367, align 4 + %4 = bitcast %struct.point367* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point367* %0 to i8* + %6 = bitcast %struct.point367* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo368(%struct.point368* noalias sret(%struct.point368) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point368, align 4 + %4 = bitcast %struct.point368* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point368* %0 to i8* + %6 = bitcast %struct.point368* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo369(%struct.point369* noalias sret(%struct.point369) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point369, align 4 + %4 = bitcast %struct.point369* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point369* %0 to i8* + %6 = bitcast %struct.point369* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo370(%struct.point370* noalias sret(%struct.point370) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point370, align 4 + %4 = bitcast %struct.point370* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point370* %0 to i8* + %6 = bitcast %struct.point370* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo371(%struct.point371* noalias sret(%struct.point371) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point371, align 4 + %4 = bitcast %struct.point371* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point371* %0 to i8* + %6 = bitcast %struct.point371* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo372(%struct.point372* noalias sret(%struct.point372) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point372, align 4 + %4 = bitcast %struct.point372* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point372* %0 to i8* + %6 = bitcast %struct.point372* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo373(%struct.point373* noalias sret(%struct.point373) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point373, align 4 + %4 = bitcast %struct.point373* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point373* %0 to i8* + %6 = bitcast %struct.point373* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo374(%struct.point374* noalias sret(%struct.point374) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point374, align 4 + %4 = bitcast %struct.point374* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point374* %0 to i8* + %6 = bitcast %struct.point374* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo375(%struct.point375* noalias sret(%struct.point375) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point375, align 4 + %4 = bitcast %struct.point375* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point375* %0 to i8* + %6 = bitcast %struct.point375* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo376(%struct.point376* noalias sret(%struct.point376) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point376, align 4 + %4 = bitcast %struct.point376* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point376* %0 to i8* + %6 = bitcast %struct.point376* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo377(%struct.point377* noalias sret(%struct.point377) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point377, align 4 + %4 = bitcast %struct.point377* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point377* %0 to i8* + %6 = bitcast %struct.point377* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo378(%struct.point378* noalias sret(%struct.point378) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point378, align 4 + %4 = bitcast %struct.point378* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point378* %0 to i8* + %6 = bitcast %struct.point378* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo379(%struct.point379* noalias sret(%struct.point379) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point379, align 4 + %4 = bitcast %struct.point379* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point379* %0 to i8* + %6 = bitcast %struct.point379* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo380(%struct.point380* noalias sret(%struct.point380) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point380, align 4 + %4 = bitcast %struct.point380* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point380* %0 to i8* + %6 = bitcast %struct.point380* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo381(%struct.point381* noalias sret(%struct.point381) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point381, align 4 + %4 = bitcast %struct.point381* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point381* %0 to i8* + %6 = bitcast %struct.point381* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo382(%struct.point382* noalias sret(%struct.point382) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point382, align 4 + %4 = bitcast %struct.point382* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point382* %0 to i8* + %6 = bitcast %struct.point382* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo383(%struct.point383* noalias sret(%struct.point383) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point383, align 4 + %4 = bitcast %struct.point383* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point383* %0 to i8* + %6 = bitcast %struct.point383* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo384(%struct.point384* noalias sret(%struct.point384) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point384, align 4 + %4 = bitcast %struct.point384* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point384* %0 to i8* + %6 = bitcast %struct.point384* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo385(%struct.point385* noalias sret(%struct.point385) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point385, align 4 + %4 = bitcast %struct.point385* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point385* %0 to i8* + %6 = bitcast %struct.point385* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo386(%struct.point386* noalias sret(%struct.point386) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point386, align 4 + %4 = bitcast %struct.point386* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point386* %0 to i8* + %6 = bitcast %struct.point386* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo387(%struct.point387* noalias sret(%struct.point387) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point387, align 4 + %4 = bitcast %struct.point387* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point387* %0 to i8* + %6 = bitcast %struct.point387* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo388(%struct.point388* noalias sret(%struct.point388) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point388, align 4 + %4 = bitcast %struct.point388* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point388* %0 to i8* + %6 = bitcast %struct.point388* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo389(%struct.point389* noalias sret(%struct.point389) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point389, align 4 + %4 = bitcast %struct.point389* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point389* %0 to i8* + %6 = bitcast %struct.point389* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo390(%struct.point390* noalias sret(%struct.point390) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point390, align 4 + %4 = bitcast %struct.point390* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point390* %0 to i8* + %6 = bitcast %struct.point390* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point391, align 4 + %4 = bitcast %struct.point391* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point392, align 4 + %4 = bitcast %struct.point392* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point393, align 4 + %4 = bitcast %struct.point393* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point394, align 4 + %4 = bitcast %struct.point394* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo395(%struct.point395* noalias sret(%struct.point395) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point395, align 4 + %4 = bitcast %struct.point395* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point395* %0 to i8* + %6 = bitcast %struct.point395* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point396, align 4 + %4 = bitcast %struct.point396* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point397, align 4 + %4 = bitcast %struct.point397* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point398, align 4 + %4 = bitcast %struct.point398* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point399, align 4 + %4 = bitcast %struct.point399* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo400(%struct.point400* noalias sret(%struct.point400) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point400, align 4 + %4 = bitcast %struct.point400* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point400* %0 to i8* + %6 = bitcast %struct.point400* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo401(%struct.point401* noalias sret(%struct.point401) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point401, align 4 + %4 = bitcast %struct.point401* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point401* %0 to i8* + %6 = bitcast %struct.point401* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo402(%struct.point402* noalias sret(%struct.point402) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point402, align 4 + %4 = bitcast %struct.point402* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point402* %0 to i8* + %6 = bitcast %struct.point402* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo403(%struct.point403* noalias sret(%struct.point403) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point403, align 4 + %4 = bitcast %struct.point403* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point403* %0 to i8* + %6 = bitcast %struct.point403* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo404(%struct.point404* noalias sret(%struct.point404) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point404, align 4 + %4 = bitcast %struct.point404* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point404* %0 to i8* + %6 = bitcast %struct.point404* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo405(%struct.point405* noalias sret(%struct.point405) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point405, align 4 + %4 = bitcast %struct.point405* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point405* %0 to i8* + %6 = bitcast %struct.point405* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo406(%struct.point406* noalias sret(%struct.point406) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point406, align 4 + %4 = bitcast %struct.point406* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point406* %0 to i8* + %6 = bitcast %struct.point406* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo407(%struct.point407* noalias sret(%struct.point407) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point407, align 4 + %4 = bitcast %struct.point407* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point407* %0 to i8* + %6 = bitcast %struct.point407* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo408(%struct.point408* noalias sret(%struct.point408) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point408, align 4 + %4 = bitcast %struct.point408* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point408* %0 to i8* + %6 = bitcast %struct.point408* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo409(%struct.point409* noalias sret(%struct.point409) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point409, align 4 + %4 = bitcast %struct.point409* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point409* %0 to i8* + %6 = bitcast %struct.point409* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo410(%struct.point410* noalias sret(%struct.point410) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point410, align 4 + %4 = bitcast %struct.point410* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point410* %0 to i8* + %6 = bitcast %struct.point410* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo411(%struct.point411* noalias sret(%struct.point411) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point411, align 4 + %4 = bitcast %struct.point411* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point411* %0 to i8* + %6 = bitcast %struct.point411* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point412, align 4 + %4 = bitcast %struct.point412* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point413, align 4 + %4 = bitcast %struct.point413* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point414, align 4 + %4 = bitcast %struct.point414* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point415, align 4 + %4 = bitcast %struct.point415* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo416(%struct.point416* noalias sret(%struct.point416) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point416, align 4 + %4 = bitcast %struct.point416* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point416* %0 to i8* + %6 = bitcast %struct.point416* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point417, align 4 + %4 = bitcast %struct.point417* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point418, align 4 + %4 = bitcast %struct.point418* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point419, align 4 + %4 = bitcast %struct.point419* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point420, align 4 + %4 = bitcast %struct.point420* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo421(%struct.point421* noalias sret(%struct.point421) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point421, align 4 + %4 = bitcast %struct.point421* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point421* %0 to i8* + %6 = bitcast %struct.point421* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo422(%struct.point422* noalias sret(%struct.point422) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point422, align 4 + %4 = bitcast %struct.point422* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point422* %0 to i8* + %6 = bitcast %struct.point422* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo423(%struct.point423* noalias sret(%struct.point423) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point423, align 4 + %4 = bitcast %struct.point423* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point423* %0 to i8* + %6 = bitcast %struct.point423* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo424(%struct.point424* noalias sret(%struct.point424) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point424, align 4 + %4 = bitcast %struct.point424* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point424* %0 to i8* + %6 = bitcast %struct.point424* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point425, align 4 + %4 = bitcast %struct.point425* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point426, align 4 + %4 = bitcast %struct.point426* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo427(%struct.point427* noalias sret(%struct.point427) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point427, align 4 + %4 = bitcast %struct.point427* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point427* %0 to i8* + %6 = bitcast %struct.point427* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo428(%struct.point428* noalias sret(%struct.point428) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point428, align 4 + %4 = bitcast %struct.point428* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point428* %0 to i8* + %6 = bitcast %struct.point428* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo429(%struct.point429* noalias sret(%struct.point429) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point429, align 4 + %4 = bitcast %struct.point429* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point429* %0 to i8* + %6 = bitcast %struct.point429* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point430, align 4 + %4 = bitcast %struct.point430* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point431, align 4 + %4 = bitcast %struct.point431* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo432(%struct.point432* noalias sret(%struct.point432) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point432, align 4 + %4 = bitcast %struct.point432* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point432* %0 to i8* + %6 = bitcast %struct.point432* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point433, align 4 + %4 = bitcast %struct.point433* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point434, align 4 + %4 = bitcast %struct.point434* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point435, align 4 + %4 = bitcast %struct.point435* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point436, align 4 + %4 = bitcast %struct.point436* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo437(%struct.point437* noalias sret(%struct.point437) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point437, align 4 + %4 = bitcast %struct.point437* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point437* %0 to i8* + %6 = bitcast %struct.point437* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point438, align 4 + %4 = bitcast %struct.point438* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point439, align 4 + %4 = bitcast %struct.point439* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point440, align 4 + %4 = bitcast %struct.point440* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point441, align 4 + %4 = bitcast %struct.point441* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo442(%struct.point442* noalias sret(%struct.point442) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point442, align 4 + %4 = bitcast %struct.point442* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point442* %0 to i8* + %6 = bitcast %struct.point442* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo443(%struct.point443* noalias sret(%struct.point443) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point443, align 4 + %4 = bitcast %struct.point443* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point443* %0 to i8* + %6 = bitcast %struct.point443* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo444(%struct.point444* noalias sret(%struct.point444) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point444, align 4 + %4 = bitcast %struct.point444* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point444* %0 to i8* + %6 = bitcast %struct.point444* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo445(%struct.point445* noalias sret(%struct.point445) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point445, align 4 + %4 = bitcast %struct.point445* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point445* %0 to i8* + %6 = bitcast %struct.point445* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point446, align 4 + %4 = bitcast %struct.point446* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point447, align 4 + %4 = bitcast %struct.point447* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo448(%struct.point448* noalias sret(%struct.point448) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point448, align 4 + %4 = bitcast %struct.point448* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point448* %0 to i8* + %6 = bitcast %struct.point448* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo449(%struct.point449* noalias sret(%struct.point449) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point449, align 4 + %4 = bitcast %struct.point449* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point449* %0 to i8* + %6 = bitcast %struct.point449* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo450(%struct.point450* noalias sret(%struct.point450) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point450, align 4 + %4 = bitcast %struct.point450* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point450* %0 to i8* + %6 = bitcast %struct.point450* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point451, align 4 + %4 = bitcast %struct.point451* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point452, align 4 + %4 = bitcast %struct.point452* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo453(%struct.point453* noalias sret(%struct.point453) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point453, align 4 + %4 = bitcast %struct.point453* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point453* %0 to i8* + %6 = bitcast %struct.point453* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point454, align 4 + %4 = bitcast %struct.point454* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point455, align 4 + %4 = bitcast %struct.point455* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point456, align 4 + %4 = bitcast %struct.point456* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point457, align 4 + %4 = bitcast %struct.point457* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo458(%struct.point458* noalias sret(%struct.point458) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point458, align 4 + %4 = bitcast %struct.point458* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point458* %0 to i8* + %6 = bitcast %struct.point458* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point459, align 4 + %4 = bitcast %struct.point459* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point460, align 4 + %4 = bitcast %struct.point460* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point461, align 4 + %4 = bitcast %struct.point461* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point462, align 4 + %4 = bitcast %struct.point462* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo463(%struct.point463* noalias sret(%struct.point463) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point463, align 4 + %4 = bitcast %struct.point463* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point463* %0 to i8* + %6 = bitcast %struct.point463* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo464(%struct.point464* noalias sret(%struct.point464) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point464, align 4 + %4 = bitcast %struct.point464* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point464* %0 to i8* + %6 = bitcast %struct.point464* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo465(%struct.point465* noalias sret(%struct.point465) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point465, align 4 + %4 = bitcast %struct.point465* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point465* %0 to i8* + %6 = bitcast %struct.point465* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo466(%struct.point466* noalias sret(%struct.point466) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point466, align 4 + %4 = bitcast %struct.point466* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point466* %0 to i8* + %6 = bitcast %struct.point466* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo467(%struct.point467* noalias sret(%struct.point467) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point467, align 4 + %4 = bitcast %struct.point467* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point467* %0 to i8* + %6 = bitcast %struct.point467* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo468(%struct.point468* noalias sret(%struct.point468) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point468, align 4 + %4 = bitcast %struct.point468* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point468* %0 to i8* + %6 = bitcast %struct.point468* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo469(%struct.point469* noalias sret(%struct.point469) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point469, align 4 + %4 = bitcast %struct.point469* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point469* %0 to i8* + %6 = bitcast %struct.point469* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo470(%struct.point470* noalias sret(%struct.point470) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point470, align 4 + %4 = bitcast %struct.point470* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point470* %0 to i8* + %6 = bitcast %struct.point470* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo471(%struct.point471* noalias sret(%struct.point471) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point471, align 4 + %4 = bitcast %struct.point471* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point471* %0 to i8* + %6 = bitcast %struct.point471* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo472(%struct.point472* noalias sret(%struct.point472) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point472, align 4 + %4 = bitcast %struct.point472* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point472* %0 to i8* + %6 = bitcast %struct.point472* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo473(%struct.point473* noalias sret(%struct.point473) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point473, align 4 + %4 = bitcast %struct.point473* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point473* %0 to i8* + %6 = bitcast %struct.point473* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo474(%struct.point474* noalias sret(%struct.point474) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point474, align 4 + %4 = bitcast %struct.point474* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point474* %0 to i8* + %6 = bitcast %struct.point474* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point475, align 4 + %4 = bitcast %struct.point475* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point476, align 4 + %4 = bitcast %struct.point476* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point477, align 4 + %4 = bitcast %struct.point477* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point478, align 4 + %4 = bitcast %struct.point478* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo479(%struct.point479* noalias sret(%struct.point479) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point479, align 4 + %4 = bitcast %struct.point479* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point479* %0 to i8* + %6 = bitcast %struct.point479* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point480, align 4 + %4 = bitcast %struct.point480* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point481, align 4 + %4 = bitcast %struct.point481* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point482, align 4 + %4 = bitcast %struct.point482* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point483, align 4 + %4 = bitcast %struct.point483* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo484(%struct.point484* noalias sret(%struct.point484) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point484, align 4 + %4 = bitcast %struct.point484* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point484* %0 to i8* + %6 = bitcast %struct.point484* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo485(%struct.point485* noalias sret(%struct.point485) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point485, align 4 + %4 = bitcast %struct.point485* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point485* %0 to i8* + %6 = bitcast %struct.point485* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo486(%struct.point486* noalias sret(%struct.point486) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point486, align 4 + %4 = bitcast %struct.point486* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point486* %0 to i8* + %6 = bitcast %struct.point486* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo487(%struct.point487* noalias sret(%struct.point487) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point487, align 4 + %4 = bitcast %struct.point487* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point487* %0 to i8* + %6 = bitcast %struct.point487* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo488(%struct.point488* noalias sret(%struct.point488) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point488, align 4 + %4 = bitcast %struct.point488* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point488* %0 to i8* + %6 = bitcast %struct.point488* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo489(%struct.point489* noalias sret(%struct.point489) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point489, align 4 + %4 = bitcast %struct.point489* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point489* %0 to i8* + %6 = bitcast %struct.point489* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo490(%struct.point490* noalias sret(%struct.point490) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point490, align 4 + %4 = bitcast %struct.point490* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point490* %0 to i8* + %6 = bitcast %struct.point490* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo491(%struct.point491* noalias sret(%struct.point491) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point491, align 4 + %4 = bitcast %struct.point491* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point491* %0 to i8* + %6 = bitcast %struct.point491* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo492(%struct.point492* noalias sret(%struct.point492) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point492, align 4 + %4 = bitcast %struct.point492* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point492* %0 to i8* + %6 = bitcast %struct.point492* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo493(%struct.point493* noalias sret(%struct.point493) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point493, align 4 + %4 = bitcast %struct.point493* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point493* %0 to i8* + %6 = bitcast %struct.point493* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo494(%struct.point494* noalias sret(%struct.point494) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point494, align 4 + %4 = bitcast %struct.point494* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point494* %0 to i8* + %6 = bitcast %struct.point494* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo495(%struct.point495* noalias sret(%struct.point495) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point495, align 4 + %4 = bitcast %struct.point495* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point495* %0 to i8* + %6 = bitcast %struct.point495* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point496, align 4 + %4 = bitcast %struct.point496* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point497, align 4 + %4 = bitcast %struct.point497* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point498, align 4 + %4 = bitcast %struct.point498* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point499, align 4 + %4 = bitcast %struct.point499* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo500(%struct.point500* noalias sret(%struct.point500) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point500, align 4 + %4 = bitcast %struct.point500* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point500* %0 to i8* + %6 = bitcast %struct.point500* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point501, align 4 + %4 = bitcast %struct.point501* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point502, align 4 + %4 = bitcast %struct.point502* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point503, align 4 + %4 = bitcast %struct.point503* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point504, align 4 + %4 = bitcast %struct.point504* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo505(%struct.point505* noalias sret(%struct.point505) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point505, align 4 + %4 = bitcast %struct.point505* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point505* %0 to i8* + %6 = bitcast %struct.point505* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo506(%struct.point506* noalias sret(%struct.point506) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point506, align 4 + %4 = bitcast %struct.point506* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point506* %0 to i8* + %6 = bitcast %struct.point506* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo507(%struct.point507* noalias sret(%struct.point507) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point507, align 4 + %4 = bitcast %struct.point507* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point507* %0 to i8* + %6 = bitcast %struct.point507* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo508(%struct.point508* noalias sret(%struct.point508) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point508, align 4 + %4 = bitcast %struct.point508* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point508* %0 to i8* + %6 = bitcast %struct.point508* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point509, align 4 + %4 = bitcast %struct.point509* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point510, align 4 + %4 = bitcast %struct.point510* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo511(%struct.point511* noalias sret(%struct.point511) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point511, align 4 + %4 = bitcast %struct.point511* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point511* %0 to i8* + %6 = bitcast %struct.point511* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo512(%struct.point512* noalias sret(%struct.point512) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point512, align 4 + %4 = bitcast %struct.point512* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point512* %0 to i8* + %6 = bitcast %struct.point512* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo513(%struct.point513* noalias sret(%struct.point513) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point513, align 4 + %4 = bitcast %struct.point513* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point513* %0 to i8* + %6 = bitcast %struct.point513* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point514, align 4 + %4 = bitcast %struct.point514* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point515, align 4 + %4 = bitcast %struct.point515* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo516(%struct.point516* noalias sret(%struct.point516) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point516, align 4 + %4 = bitcast %struct.point516* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point516* %0 to i8* + %6 = bitcast %struct.point516* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point517, align 4 + %4 = bitcast %struct.point517* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point518, align 4 + %4 = bitcast %struct.point518* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point519, align 4 + %4 = bitcast %struct.point519* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point520, align 4 + %4 = bitcast %struct.point520* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo521(%struct.point521* noalias sret(%struct.point521) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point521, align 4 + %4 = bitcast %struct.point521* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point521* %0 to i8* + %6 = bitcast %struct.point521* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point522, align 4 + %4 = bitcast %struct.point522* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point523, align 4 + %4 = bitcast %struct.point523* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point524, align 4 + %4 = bitcast %struct.point524* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point525, align 4 + %4 = bitcast %struct.point525* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo526(%struct.point526* noalias sret(%struct.point526) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point526, align 4 + %4 = bitcast %struct.point526* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point526* %0 to i8* + %6 = bitcast %struct.point526* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo527(%struct.point527* noalias sret(%struct.point527) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point527, align 4 + %4 = bitcast %struct.point527* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point527* %0 to i8* + %6 = bitcast %struct.point527* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo528(%struct.point528* noalias sret(%struct.point528) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point528, align 4 + %4 = bitcast %struct.point528* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point528* %0 to i8* + %6 = bitcast %struct.point528* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo529(%struct.point529* noalias sret(%struct.point529) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point529, align 4 + %4 = bitcast %struct.point529* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point529* %0 to i8* + %6 = bitcast %struct.point529* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point530, align 4 + %4 = bitcast %struct.point530* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point531, align 4 + %4 = bitcast %struct.point531* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo532(%struct.point532* noalias sret(%struct.point532) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point532, align 4 + %4 = bitcast %struct.point532* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point532* %0 to i8* + %6 = bitcast %struct.point532* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo533(%struct.point533* noalias sret(%struct.point533) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point533, align 4 + %4 = bitcast %struct.point533* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point533* %0 to i8* + %6 = bitcast %struct.point533* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo534(%struct.point534* noalias sret(%struct.point534) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point534, align 4 + %4 = bitcast %struct.point534* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point534* %0 to i8* + %6 = bitcast %struct.point534* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point535, align 4 + %4 = bitcast %struct.point535* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point536, align 4 + %4 = bitcast %struct.point536* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo537(%struct.point537* noalias sret(%struct.point537) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point537, align 4 + %4 = bitcast %struct.point537* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point537* %0 to i8* + %6 = bitcast %struct.point537* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point538, align 4 + %4 = bitcast %struct.point538* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point539, align 4 + %4 = bitcast %struct.point539* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point540, align 4 + %4 = bitcast %struct.point540* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point541, align 4 + %4 = bitcast %struct.point541* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo542(%struct.point542* noalias sret(%struct.point542) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point542, align 4 + %4 = bitcast %struct.point542* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point542* %0 to i8* + %6 = bitcast %struct.point542* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point543, align 4 + %4 = bitcast %struct.point543* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point544, align 4 + %4 = bitcast %struct.point544* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point545, align 4 + %4 = bitcast %struct.point545* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point546, align 4 + %4 = bitcast %struct.point546* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo547(%struct.point547* noalias sret(%struct.point547) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point547* %0 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo548(%struct.point548* noalias sret(%struct.point548) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point548, align 4 + %4 = bitcast %struct.point548* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point548* %0 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo549(%struct.point549* noalias sret(%struct.point549) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point549, align 4 + %4 = bitcast %struct.point549* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point549* %0 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo550(%struct.point550* noalias sret(%struct.point550) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point550, align 4 + %4 = bitcast %struct.point550* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point550* %0 to i8* + %6 = bitcast %struct.point550* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo551(%struct.point551* noalias sret(%struct.point551) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point551, align 4 + %4 = bitcast %struct.point551* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point551* %0 to i8* + %6 = bitcast %struct.point551* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo552(%struct.point552* noalias sret(%struct.point552) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point552, align 4 + %4 = bitcast %struct.point552* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point552* %0 to i8* + %6 = bitcast %struct.point552* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo553(%struct.point553* noalias sret(%struct.point553) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point553* %0 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo554(%struct.point554* noalias sret(%struct.point554) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point554, align 4 + %4 = bitcast %struct.point554* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point554* %0 to i8* + %6 = bitcast %struct.point554* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo555(%struct.point555* noalias sret(%struct.point555) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point555, align 4 + %4 = bitcast %struct.point555* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point555* %0 to i8* + %6 = bitcast %struct.point555* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo556(%struct.point556* noalias sret(%struct.point556) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point556, align 4 + %4 = bitcast %struct.point556* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point556* %0 to i8* + %6 = bitcast %struct.point556* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo557(%struct.point557* noalias sret(%struct.point557) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point557, align 4 + %4 = bitcast %struct.point557* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point557* %0 to i8* + %6 = bitcast %struct.point557* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo558(%struct.point558* noalias sret(%struct.point558) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point558, align 4 + %4 = bitcast %struct.point558* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point558* %0 to i8* + %6 = bitcast %struct.point558* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo559(%struct.point559* noalias sret(%struct.point559) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point559, align 4 + %4 = bitcast %struct.point559* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point559* %0 to i8* + %6 = bitcast %struct.point559* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo560(%struct.point560* noalias sret(%struct.point560) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point560, align 4 + %4 = bitcast %struct.point560* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point560* %0 to i8* + %6 = bitcast %struct.point560* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo561(%struct.point561* noalias sret(%struct.point561) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point561, align 4 + %4 = bitcast %struct.point561* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point561* %0 to i8* + %6 = bitcast %struct.point561* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo562(%struct.point562* noalias sret(%struct.point562) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point562, align 4 + %4 = bitcast %struct.point562* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point562* %0 to i8* + %6 = bitcast %struct.point562* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo563(%struct.point563* noalias sret(%struct.point563) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point563, align 4 + %4 = bitcast %struct.point563* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point563* %0 to i8* + %6 = bitcast %struct.point563* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo564(%struct.point564* noalias sret(%struct.point564) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point564, align 4 + %4 = bitcast %struct.point564* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point564* %0 to i8* + %6 = bitcast %struct.point564* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo565(%struct.point565* noalias sret(%struct.point565) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point565, align 4 + %4 = bitcast %struct.point565* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point565* %0 to i8* + %6 = bitcast %struct.point565* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo566(%struct.point566* noalias sret(%struct.point566) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point566, align 4 + %4 = bitcast %struct.point566* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point566* %0 to i8* + %6 = bitcast %struct.point566* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo567(%struct.point567* noalias sret(%struct.point567) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point567, align 4 + %4 = bitcast %struct.point567* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point567* %0 to i8* + %6 = bitcast %struct.point567* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo568(%struct.point568* noalias sret(%struct.point568) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point568* %0 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo569(%struct.point569* noalias sret(%struct.point569) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point569, align 4 + %4 = bitcast %struct.point569* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point569* %0 to i8* + %6 = bitcast %struct.point569* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo570(%struct.point570* noalias sret(%struct.point570) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point570, align 4 + %4 = bitcast %struct.point570* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point570* %0 to i8* + %6 = bitcast %struct.point570* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo571(%struct.point571* noalias sret(%struct.point571) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point571, align 4 + %4 = bitcast %struct.point571* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point571* %0 to i8* + %6 = bitcast %struct.point571* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo572(%struct.point572* noalias sret(%struct.point572) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point572, align 4 + %4 = bitcast %struct.point572* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point572* %0 to i8* + %6 = bitcast %struct.point572* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo573(%struct.point573* noalias sret(%struct.point573) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point573, align 4 + %4 = bitcast %struct.point573* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point573* %0 to i8* + %6 = bitcast %struct.point573* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo574(%struct.point574* noalias sret(%struct.point574) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point574, align 4 + %4 = bitcast %struct.point574* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point574* %0 to i8* + %6 = bitcast %struct.point574* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo575(%struct.point575* noalias sret(%struct.point575) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point575, align 4 + %4 = bitcast %struct.point575* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point575* %0 to i8* + %6 = bitcast %struct.point575* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo576(%struct.point576* noalias sret(%struct.point576) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point576, align 4 + %4 = bitcast %struct.point576* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point576* %0 to i8* + %6 = bitcast %struct.point576* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo577(%struct.point577* noalias sret(%struct.point577) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point577, align 4 + %4 = bitcast %struct.point577* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point577* %0 to i8* + %6 = bitcast %struct.point577* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo578(%struct.point578* noalias sret(%struct.point578) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point578, align 4 + %4 = bitcast %struct.point578* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point578* %0 to i8* + %6 = bitcast %struct.point578* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo579(%struct.point579* noalias sret(%struct.point579) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point579, align 4 + %4 = bitcast %struct.point579* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point579* %0 to i8* + %6 = bitcast %struct.point579* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo580(%struct.point580* noalias sret(%struct.point580) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point580, align 4 + %4 = bitcast %struct.point580* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point580* %0 to i8* + %6 = bitcast %struct.point580* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo581(%struct.point581* noalias sret(%struct.point581) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point581, align 4 + %4 = bitcast %struct.point581* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point581* %0 to i8* + %6 = bitcast %struct.point581* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo582(%struct.point582* noalias sret(%struct.point582) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point582, align 4 + %4 = bitcast %struct.point582* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point582* %0 to i8* + %6 = bitcast %struct.point582* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo583(%struct.point583* noalias sret(%struct.point583) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point583, align 4 + %4 = bitcast %struct.point583* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point583* %0 to i8* + %6 = bitcast %struct.point583* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo584(%struct.point584* noalias sret(%struct.point584) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point584, align 4 + %4 = bitcast %struct.point584* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point584* %0 to i8* + %6 = bitcast %struct.point584* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo585(%struct.point585* noalias sret(%struct.point585) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point585, align 4 + %4 = bitcast %struct.point585* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point585* %0 to i8* + %6 = bitcast %struct.point585* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo586(%struct.point586* noalias sret(%struct.point586) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point586, align 4 + %4 = bitcast %struct.point586* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point586* %0 to i8* + %6 = bitcast %struct.point586* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo587(%struct.point587* noalias sret(%struct.point587) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point587, align 4 + %4 = bitcast %struct.point587* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point587* %0 to i8* + %6 = bitcast %struct.point587* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo588(%struct.point588* noalias sret(%struct.point588) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point588, align 4 + %4 = bitcast %struct.point588* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point588* %0 to i8* + %6 = bitcast %struct.point588* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo589(%struct.point589* noalias sret(%struct.point589) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point589, align 4 + %4 = bitcast %struct.point589* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point589* %0 to i8* + %6 = bitcast %struct.point589* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo590(%struct.point590* noalias sret(%struct.point590) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point590, align 4 + %4 = bitcast %struct.point590* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point590* %0 to i8* + %6 = bitcast %struct.point590* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo591(%struct.point591* noalias sret(%struct.point591) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point591, align 4 + %4 = bitcast %struct.point591* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point591* %0 to i8* + %6 = bitcast %struct.point591* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo592(%struct.point592* noalias sret(%struct.point592) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point592, align 4 + %4 = bitcast %struct.point592* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point592* %0 to i8* + %6 = bitcast %struct.point592* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point593, align 4 + %4 = bitcast %struct.point593* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point594, align 4 + %4 = bitcast %struct.point594* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo595(%struct.point595* noalias sret(%struct.point595) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point595, align 4 + %4 = bitcast %struct.point595* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point595* %0 to i8* + %6 = bitcast %struct.point595* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo596(%struct.point596* noalias sret(%struct.point596) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point596, align 4 + %4 = bitcast %struct.point596* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point596* %0 to i8* + %6 = bitcast %struct.point596* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo597(%struct.point597* noalias sret(%struct.point597) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point597, align 4 + %4 = bitcast %struct.point597* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point597* %0 to i8* + %6 = bitcast %struct.point597* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point598, align 4 + %4 = bitcast %struct.point598* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point599, align 4 + %4 = bitcast %struct.point599* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo600(%struct.point600* noalias sret(%struct.point600) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point600, align 4 + %4 = bitcast %struct.point600* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point600* %0 to i8* + %6 = bitcast %struct.point600* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point601, align 4 + %4 = bitcast %struct.point601* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point602, align 4 + %4 = bitcast %struct.point602* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point603, align 4 + %4 = bitcast %struct.point603* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point604, align 4 + %4 = bitcast %struct.point604* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo605(%struct.point605* noalias sret(%struct.point605) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point605, align 4 + %4 = bitcast %struct.point605* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point605* %0 to i8* + %6 = bitcast %struct.point605* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point606, align 4 + %4 = bitcast %struct.point606* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point607, align 4 + %4 = bitcast %struct.point607* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point608, align 4 + %4 = bitcast %struct.point608* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point609, align 4 + %4 = bitcast %struct.point609* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo610(%struct.point610* noalias sret(%struct.point610) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point610, align 4 + %4 = bitcast %struct.point610* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point610* %0 to i8* + %6 = bitcast %struct.point610* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo611(%struct.point611* noalias sret(%struct.point611) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point611, align 4 + %4 = bitcast %struct.point611* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point611* %0 to i8* + %6 = bitcast %struct.point611* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo612(%struct.point612* noalias sret(%struct.point612) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point612, align 4 + %4 = bitcast %struct.point612* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point612* %0 to i8* + %6 = bitcast %struct.point612* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo613(%struct.point613* noalias sret(%struct.point613) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point613, align 4 + %4 = bitcast %struct.point613* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point613* %0 to i8* + %6 = bitcast %struct.point613* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point614, align 4 + %4 = bitcast %struct.point614* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point615, align 4 + %4 = bitcast %struct.point615* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo616(%struct.point616* noalias sret(%struct.point616) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point616, align 4 + %4 = bitcast %struct.point616* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point616* %0 to i8* + %6 = bitcast %struct.point616* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo617(%struct.point617* noalias sret(%struct.point617) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point617, align 4 + %4 = bitcast %struct.point617* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point617* %0 to i8* + %6 = bitcast %struct.point617* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo618(%struct.point618* noalias sret(%struct.point618) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point618, align 4 + %4 = bitcast %struct.point618* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point618* %0 to i8* + %6 = bitcast %struct.point618* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point619, align 4 + %4 = bitcast %struct.point619* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point620, align 4 + %4 = bitcast %struct.point620* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo621(%struct.point621* noalias sret(%struct.point621) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point621, align 4 + %4 = bitcast %struct.point621* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point621* %0 to i8* + %6 = bitcast %struct.point621* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point622, align 4 + %4 = bitcast %struct.point622* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point623, align 4 + %4 = bitcast %struct.point623* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point624, align 4 + %4 = bitcast %struct.point624* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point625, align 4 + %4 = bitcast %struct.point625* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo626(%struct.point626* noalias sret(%struct.point626) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point626, align 4 + %4 = bitcast %struct.point626* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point626* %0 to i8* + %6 = bitcast %struct.point626* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point627, align 4 + %4 = bitcast %struct.point627* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point628, align 4 + %4 = bitcast %struct.point628* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point629, align 4 + %4 = bitcast %struct.point629* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point630, align 4 + %4 = bitcast %struct.point630* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo631(%struct.point631* noalias sret(%struct.point631) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point631* %0 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo632(%struct.point632* noalias sret(%struct.point632) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point632, align 4 + %4 = bitcast %struct.point632* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point632* %0 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo633(%struct.point633* noalias sret(%struct.point633) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point633, align 4 + %4 = bitcast %struct.point633* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point633* %0 to i8* + %6 = bitcast %struct.point633* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo634(%struct.point634* noalias sret(%struct.point634) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point634, align 4 + %4 = bitcast %struct.point634* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point634* %0 to i8* + %6 = bitcast %struct.point634* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo635(%struct.point635* noalias sret(%struct.point635) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point635, align 4 + %4 = bitcast %struct.point635* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point635* %0 to i8* + %6 = bitcast %struct.point635* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo636(%struct.point636* noalias sret(%struct.point636) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point636, align 4 + %4 = bitcast %struct.point636* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point636* %0 to i8* + %6 = bitcast %struct.point636* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo637(%struct.point637* noalias sret(%struct.point637) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point637, align 4 + %4 = bitcast %struct.point637* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point637* %0 to i8* + %6 = bitcast %struct.point637* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo638(%struct.point638* noalias sret(%struct.point638) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point638, align 4 + %4 = bitcast %struct.point638* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point638* %0 to i8* + %6 = bitcast %struct.point638* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo639(%struct.point639* noalias sret(%struct.point639) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point639, align 4 + %4 = bitcast %struct.point639* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point639* %0 to i8* + %6 = bitcast %struct.point639* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo640(%struct.point640* noalias sret(%struct.point640) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point640, align 4 + %4 = bitcast %struct.point640* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point640* %0 to i8* + %6 = bitcast %struct.point640* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo641(%struct.point641* noalias sret(%struct.point641) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point641, align 4 + %4 = bitcast %struct.point641* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point641* %0 to i8* + %6 = bitcast %struct.point641* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo642(%struct.point642* noalias sret(%struct.point642) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point642, align 4 + %4 = bitcast %struct.point642* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point642* %0 to i8* + %6 = bitcast %struct.point642* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo643(%struct.point643* noalias sret(%struct.point643) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point643, align 4 + %4 = bitcast %struct.point643* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point643* %0 to i8* + %6 = bitcast %struct.point643* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo644(%struct.point644* noalias sret(%struct.point644) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point644, align 4 + %4 = bitcast %struct.point644* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point644* %0 to i8* + %6 = bitcast %struct.point644* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo645(%struct.point645* noalias sret(%struct.point645) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point645, align 4 + %4 = bitcast %struct.point645* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point645* %0 to i8* + %6 = bitcast %struct.point645* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo646(%struct.point646* noalias sret(%struct.point646) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point646, align 4 + %4 = bitcast %struct.point646* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point646* %0 to i8* + %6 = bitcast %struct.point646* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo647(%struct.point647* noalias sret(%struct.point647) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point647, align 4 + %4 = bitcast %struct.point647* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point647* %0 to i8* + %6 = bitcast %struct.point647* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo648(%struct.point648* noalias sret(%struct.point648) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point648, align 4 + %4 = bitcast %struct.point648* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point648* %0 to i8* + %6 = bitcast %struct.point648* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo649(%struct.point649* noalias sret(%struct.point649) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point649, align 4 + %4 = bitcast %struct.point649* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point649* %0 to i8* + %6 = bitcast %struct.point649* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo650(%struct.point650* noalias sret(%struct.point650) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point650, align 4 + %4 = bitcast %struct.point650* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point650* %0 to i8* + %6 = bitcast %struct.point650* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo651(%struct.point651* noalias sret(%struct.point651) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point651, align 4 + %4 = bitcast %struct.point651* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point651* %0 to i8* + %6 = bitcast %struct.point651* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo652(%struct.point652* noalias sret(%struct.point652) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point652* %0 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo653(%struct.point653* noalias sret(%struct.point653) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point653, align 4 + %4 = bitcast %struct.point653* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point653* %0 to i8* + %6 = bitcast %struct.point653* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo654(%struct.point654* noalias sret(%struct.point654) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point654, align 4 + %4 = bitcast %struct.point654* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point654* %0 to i8* + %6 = bitcast %struct.point654* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo655(%struct.point655* noalias sret(%struct.point655) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point655, align 4 + %4 = bitcast %struct.point655* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point655* %0 to i8* + %6 = bitcast %struct.point655* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo656(%struct.point656* noalias sret(%struct.point656) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point656, align 4 + %4 = bitcast %struct.point656* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point656* %0 to i8* + %6 = bitcast %struct.point656* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo657(%struct.point657* noalias sret(%struct.point657) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point657, align 4 + %4 = bitcast %struct.point657* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point657* %0 to i8* + %6 = bitcast %struct.point657* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo658(%struct.point658* noalias sret(%struct.point658) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point658, align 4 + %4 = bitcast %struct.point658* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point658* %0 to i8* + %6 = bitcast %struct.point658* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo659(%struct.point659* noalias sret(%struct.point659) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point659, align 4 + %4 = bitcast %struct.point659* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point659* %0 to i8* + %6 = bitcast %struct.point659* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo660(%struct.point660* noalias sret(%struct.point660) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point660, align 4 + %4 = bitcast %struct.point660* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point660* %0 to i8* + %6 = bitcast %struct.point660* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo661(%struct.point661* noalias sret(%struct.point661) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point661, align 4 + %4 = bitcast %struct.point661* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point661* %0 to i8* + %6 = bitcast %struct.point661* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo662(%struct.point662* noalias sret(%struct.point662) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point662, align 4 + %4 = bitcast %struct.point662* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point662* %0 to i8* + %6 = bitcast %struct.point662* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo663(%struct.point663* noalias sret(%struct.point663) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point663, align 4 + %4 = bitcast %struct.point663* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point663* %0 to i8* + %6 = bitcast %struct.point663* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo664(%struct.point664* noalias sret(%struct.point664) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point664, align 4 + %4 = bitcast %struct.point664* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point664* %0 to i8* + %6 = bitcast %struct.point664* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo665(%struct.point665* noalias sret(%struct.point665) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point665, align 4 + %4 = bitcast %struct.point665* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point665* %0 to i8* + %6 = bitcast %struct.point665* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo666(%struct.point666* noalias sret(%struct.point666) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point666, align 4 + %4 = bitcast %struct.point666* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point666* %0 to i8* + %6 = bitcast %struct.point666* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo667(%struct.point667* noalias sret(%struct.point667) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point667, align 4 + %4 = bitcast %struct.point667* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point667* %0 to i8* + %6 = bitcast %struct.point667* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo668(%struct.point668* noalias sret(%struct.point668) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point668, align 4 + %4 = bitcast %struct.point668* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point668* %0 to i8* + %6 = bitcast %struct.point668* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo669(%struct.point669* noalias sret(%struct.point669) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point669, align 4 + %4 = bitcast %struct.point669* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point669* %0 to i8* + %6 = bitcast %struct.point669* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo670(%struct.point670* noalias sret(%struct.point670) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point670, align 4 + %4 = bitcast %struct.point670* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point670* %0 to i8* + %6 = bitcast %struct.point670* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo671(%struct.point671* noalias sret(%struct.point671) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point671, align 4 + %4 = bitcast %struct.point671* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point671* %0 to i8* + %6 = bitcast %struct.point671* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo672(%struct.point672* noalias sret(%struct.point672) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point672, align 4 + %4 = bitcast %struct.point672* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point672* %0 to i8* + %6 = bitcast %struct.point672* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo673(%struct.point673* noalias sret(%struct.point673) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point673, align 4 + %4 = bitcast %struct.point673* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point673* %0 to i8* + %6 = bitcast %struct.point673* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo674(%struct.point674* noalias sret(%struct.point674) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point674, align 4 + %4 = bitcast %struct.point674* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point674* %0 to i8* + %6 = bitcast %struct.point674* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo675(%struct.point675* noalias sret(%struct.point675) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point675, align 4 + %4 = bitcast %struct.point675* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point675* %0 to i8* + %6 = bitcast %struct.point675* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo676(%struct.point676* noalias sret(%struct.point676) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point676, align 4 + %4 = bitcast %struct.point676* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point676* %0 to i8* + %6 = bitcast %struct.point676* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point677, align 4 + %4 = bitcast %struct.point677* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point678, align 4 + %4 = bitcast %struct.point678* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo679(%struct.point679* noalias sret(%struct.point679) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point679, align 4 + %4 = bitcast %struct.point679* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point679* %0 to i8* + %6 = bitcast %struct.point679* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo680(%struct.point680* noalias sret(%struct.point680) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point680, align 4 + %4 = bitcast %struct.point680* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point680* %0 to i8* + %6 = bitcast %struct.point680* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo681(%struct.point681* noalias sret(%struct.point681) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point681, align 4 + %4 = bitcast %struct.point681* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point681* %0 to i8* + %6 = bitcast %struct.point681* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point682, align 4 + %4 = bitcast %struct.point682* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point683, align 4 + %4 = bitcast %struct.point683* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo684(%struct.point684* noalias sret(%struct.point684) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point684, align 4 + %4 = bitcast %struct.point684* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point684* %0 to i8* + %6 = bitcast %struct.point684* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point685, align 4 + %4 = bitcast %struct.point685* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point686, align 4 + %4 = bitcast %struct.point686* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point687, align 4 + %4 = bitcast %struct.point687* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point688, align 4 + %4 = bitcast %struct.point688* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo689(%struct.point689* noalias sret(%struct.point689) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point689, align 4 + %4 = bitcast %struct.point689* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point689* %0 to i8* + %6 = bitcast %struct.point689* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point690, align 4 + %4 = bitcast %struct.point690* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point691, align 4 + %4 = bitcast %struct.point691* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point692, align 4 + %4 = bitcast %struct.point692* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point693, align 4 + %4 = bitcast %struct.point693* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo694(%struct.point694* noalias sret(%struct.point694) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point694, align 4 + %4 = bitcast %struct.point694* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point694* %0 to i8* + %6 = bitcast %struct.point694* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo695(%struct.point695* noalias sret(%struct.point695) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point695, align 4 + %4 = bitcast %struct.point695* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point695* %0 to i8* + %6 = bitcast %struct.point695* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo696(%struct.point696* noalias sret(%struct.point696) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point696, align 4 + %4 = bitcast %struct.point696* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point696* %0 to i8* + %6 = bitcast %struct.point696* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo697(%struct.point697* noalias sret(%struct.point697) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point697, align 4 + %4 = bitcast %struct.point697* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point697* %0 to i8* + %6 = bitcast %struct.point697* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point698, align 4 + %4 = bitcast %struct.point698* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point699, align 4 + %4 = bitcast %struct.point699* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo700(%struct.point700* noalias sret(%struct.point700) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point700, align 4 + %4 = bitcast %struct.point700* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point700* %0 to i8* + %6 = bitcast %struct.point700* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo701(%struct.point701* noalias sret(%struct.point701) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point701, align 4 + %4 = bitcast %struct.point701* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point701* %0 to i8* + %6 = bitcast %struct.point701* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo702(%struct.point702* noalias sret(%struct.point702) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point702, align 4 + %4 = bitcast %struct.point702* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point702* %0 to i8* + %6 = bitcast %struct.point702* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point703, align 4 + %4 = bitcast %struct.point703* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point704, align 4 + %4 = bitcast %struct.point704* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo705(%struct.point705* noalias sret(%struct.point705) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point705, align 4 + %4 = bitcast %struct.point705* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point705* %0 to i8* + %6 = bitcast %struct.point705* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point706, align 4 + %4 = bitcast %struct.point706* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point707, align 4 + %4 = bitcast %struct.point707* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point708, align 4 + %4 = bitcast %struct.point708* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point709, align 4 + %4 = bitcast %struct.point709* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo710(%struct.point710* noalias sret(%struct.point710) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point710, align 4 + %4 = bitcast %struct.point710* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point710* %0 to i8* + %6 = bitcast %struct.point710* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point711, align 4 + %4 = bitcast %struct.point711* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point712, align 4 + %4 = bitcast %struct.point712* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point713, align 4 + %4 = bitcast %struct.point713* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point714, align 4 + %4 = bitcast %struct.point714* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo715(%struct.point715* noalias sret(%struct.point715) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point715, align 4 + %4 = bitcast %struct.point715* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point715* %0 to i8* + %6 = bitcast %struct.point715* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo716(%struct.point716* noalias sret(%struct.point716) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point716, align 4 + %4 = bitcast %struct.point716* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point716* %0 to i8* + %6 = bitcast %struct.point716* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo717(%struct.point717* noalias sret(%struct.point717) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point717, align 4 + %4 = bitcast %struct.point717* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point717* %0 to i8* + %6 = bitcast %struct.point717* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo718(%struct.point718* noalias sret(%struct.point718) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point718, align 4 + %4 = bitcast %struct.point718* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point718* %0 to i8* + %6 = bitcast %struct.point718* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo719(%struct.point719* noalias sret(%struct.point719) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point719, align 4 + %4 = bitcast %struct.point719* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point719* %0 to i8* + %6 = bitcast %struct.point719* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo720(%struct.point720* noalias sret(%struct.point720) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point720, align 4 + %4 = bitcast %struct.point720* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point720* %0 to i8* + %6 = bitcast %struct.point720* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo721(%struct.point721* noalias sret(%struct.point721) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point721, align 4 + %4 = bitcast %struct.point721* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point721* %0 to i8* + %6 = bitcast %struct.point721* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo722(%struct.point722* noalias sret(%struct.point722) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point722, align 4 + %4 = bitcast %struct.point722* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point722* %0 to i8* + %6 = bitcast %struct.point722* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo723(%struct.point723* noalias sret(%struct.point723) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point723, align 4 + %4 = bitcast %struct.point723* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point723* %0 to i8* + %6 = bitcast %struct.point723* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo724(%struct.point724* noalias sret(%struct.point724) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point724, align 4 + %4 = bitcast %struct.point724* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point724* %0 to i8* + %6 = bitcast %struct.point724* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo725(%struct.point725* noalias sret(%struct.point725) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point725, align 4 + %4 = bitcast %struct.point725* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point725* %0 to i8* + %6 = bitcast %struct.point725* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo726(%struct.point726* noalias sret(%struct.point726) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point726, align 4 + %4 = bitcast %struct.point726* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point726* %0 to i8* + %6 = bitcast %struct.point726* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point727, align 4 + %4 = bitcast %struct.point727* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point728, align 4 + %4 = bitcast %struct.point728* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point729, align 4 + %4 = bitcast %struct.point729* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point730, align 4 + %4 = bitcast %struct.point730* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo731(%struct.point731* noalias sret(%struct.point731) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point731, align 4 + %4 = bitcast %struct.point731* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point731* %0 to i8* + %6 = bitcast %struct.point731* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point732, align 4 + %4 = bitcast %struct.point732* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point733, align 4 + %4 = bitcast %struct.point733* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point734, align 4 + %4 = bitcast %struct.point734* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point735, align 4 + %4 = bitcast %struct.point735* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo736(%struct.point736* noalias sret(%struct.point736) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point736, align 4 + %4 = bitcast %struct.point736* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point736* %0 to i8* + %6 = bitcast %struct.point736* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo737(%struct.point737* noalias sret(%struct.point737) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point737, align 4 + %4 = bitcast %struct.point737* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point737* %0 to i8* + %6 = bitcast %struct.point737* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo738(%struct.point738* noalias sret(%struct.point738) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point738, align 4 + %4 = bitcast %struct.point738* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point738* %0 to i8* + %6 = bitcast %struct.point738* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo739(%struct.point739* noalias sret(%struct.point739) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point739, align 4 + %4 = bitcast %struct.point739* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point739* %0 to i8* + %6 = bitcast %struct.point739* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo740(%struct.point740* noalias sret(%struct.point740) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point740, align 4 + %4 = bitcast %struct.point740* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point740* %0 to i8* + %6 = bitcast %struct.point740* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo741(%struct.point741* noalias sret(%struct.point741) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point741, align 4 + %4 = bitcast %struct.point741* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point741* %0 to i8* + %6 = bitcast %struct.point741* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo742(%struct.point742* noalias sret(%struct.point742) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point742, align 4 + %4 = bitcast %struct.point742* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point742* %0 to i8* + %6 = bitcast %struct.point742* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo743(%struct.point743* noalias sret(%struct.point743) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point743, align 4 + %4 = bitcast %struct.point743* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point743* %0 to i8* + %6 = bitcast %struct.point743* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo744(%struct.point744* noalias sret(%struct.point744) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point744, align 4 + %4 = bitcast %struct.point744* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point744* %0 to i8* + %6 = bitcast %struct.point744* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo745(%struct.point745* noalias sret(%struct.point745) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point745, align 4 + %4 = bitcast %struct.point745* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point745* %0 to i8* + %6 = bitcast %struct.point745* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo746(%struct.point746* noalias sret(%struct.point746) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point746, align 4 + %4 = bitcast %struct.point746* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point746* %0 to i8* + %6 = bitcast %struct.point746* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo747(%struct.point747* noalias sret(%struct.point747) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point747, align 4 + %4 = bitcast %struct.point747* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point747* %0 to i8* + %6 = bitcast %struct.point747* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point748, align 4 + %4 = bitcast %struct.point748* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point749, align 4 + %4 = bitcast %struct.point749* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point750, align 4 + %4 = bitcast %struct.point750* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point751, align 4 + %4 = bitcast %struct.point751* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo752(%struct.point752* noalias sret(%struct.point752) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point752, align 4 + %4 = bitcast %struct.point752* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point752* %0 to i8* + %6 = bitcast %struct.point752* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point753, align 4 + %4 = bitcast %struct.point753* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point754, align 4 + %4 = bitcast %struct.point754* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point755, align 4 + %4 = bitcast %struct.point755* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point756, align 4 + %4 = bitcast %struct.point756* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo757(%struct.point757* noalias sret(%struct.point757) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point757, align 4 + %4 = bitcast %struct.point757* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point757* %0 to i8* + %6 = bitcast %struct.point757* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo758(%struct.point758* noalias sret(%struct.point758) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point758, align 4 + %4 = bitcast %struct.point758* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point758* %0 to i8* + %6 = bitcast %struct.point758* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo759(%struct.point759* noalias sret(%struct.point759) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point759, align 4 + %4 = bitcast %struct.point759* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point759* %0 to i8* + %6 = bitcast %struct.point759* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo760(%struct.point760* noalias sret(%struct.point760) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point760, align 4 + %4 = bitcast %struct.point760* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point760* %0 to i8* + %6 = bitcast %struct.point760* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point761, align 4 + %4 = bitcast %struct.point761* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point762, align 4 + %4 = bitcast %struct.point762* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo763(%struct.point763* noalias sret(%struct.point763) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point763, align 4 + %4 = bitcast %struct.point763* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point763* %0 to i8* + %6 = bitcast %struct.point763* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo764(%struct.point764* noalias sret(%struct.point764) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point764, align 4 + %4 = bitcast %struct.point764* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point764* %0 to i8* + %6 = bitcast %struct.point764* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo765(%struct.point765* noalias sret(%struct.point765) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point765, align 4 + %4 = bitcast %struct.point765* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point765* %0 to i8* + %6 = bitcast %struct.point765* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point766, align 4 + %4 = bitcast %struct.point766* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point767, align 4 + %4 = bitcast %struct.point767* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo768(%struct.point768* noalias sret(%struct.point768) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point768, align 4 + %4 = bitcast %struct.point768* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point768* %0 to i8* + %6 = bitcast %struct.point768* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point769, align 4 + %4 = bitcast %struct.point769* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point770, align 4 + %4 = bitcast %struct.point770* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point771, align 4 + %4 = bitcast %struct.point771* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point772, align 4 + %4 = bitcast %struct.point772* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo773(%struct.point773* noalias sret(%struct.point773) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point773, align 4 + %4 = bitcast %struct.point773* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point773* %0 to i8* + %6 = bitcast %struct.point773* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point774, align 4 + %4 = bitcast %struct.point774* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point775, align 4 + %4 = bitcast %struct.point775* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point776, align 4 + %4 = bitcast %struct.point776* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point777, align 4 + %4 = bitcast %struct.point777* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo778(%struct.point778* noalias sret(%struct.point778) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point778, align 4 + %4 = bitcast %struct.point778* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point778* %0 to i8* + %6 = bitcast %struct.point778* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo779(%struct.point779* noalias sret(%struct.point779) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point779, align 4 + %4 = bitcast %struct.point779* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point779* %0 to i8* + %6 = bitcast %struct.point779* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo780(%struct.point780* noalias sret(%struct.point780) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point780, align 4 + %4 = bitcast %struct.point780* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point780* %0 to i8* + %6 = bitcast %struct.point780* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo781(%struct.point781* noalias sret(%struct.point781) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point781, align 4 + %4 = bitcast %struct.point781* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point781* %0 to i8* + %6 = bitcast %struct.point781* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point782, align 4 + %4 = bitcast %struct.point782* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point783, align 4 + %4 = bitcast %struct.point783* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo784(%struct.point784* noalias sret(%struct.point784) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point784, align 4 + %4 = bitcast %struct.point784* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point784* %0 to i8* + %6 = bitcast %struct.point784* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo785(%struct.point785* noalias sret(%struct.point785) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point785, align 4 + %4 = bitcast %struct.point785* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point785* %0 to i8* + %6 = bitcast %struct.point785* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo786(%struct.point786* noalias sret(%struct.point786) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point786, align 4 + %4 = bitcast %struct.point786* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point786* %0 to i8* + %6 = bitcast %struct.point786* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point787, align 4 + %4 = bitcast %struct.point787* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point788, align 4 + %4 = bitcast %struct.point788* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo789(%struct.point789* noalias sret(%struct.point789) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point789, align 4 + %4 = bitcast %struct.point789* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point789* %0 to i8* + %6 = bitcast %struct.point789* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point790, align 4 + %4 = bitcast %struct.point790* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point791, align 4 + %4 = bitcast %struct.point791* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point792, align 4 + %4 = bitcast %struct.point792* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point793, align 4 + %4 = bitcast %struct.point793* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo794(%struct.point794* noalias sret(%struct.point794) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point794, align 4 + %4 = bitcast %struct.point794* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point794* %0 to i8* + %6 = bitcast %struct.point794* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point795, align 4 + %4 = bitcast %struct.point795* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point796, align 4 + %4 = bitcast %struct.point796* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point797, align 4 + %4 = bitcast %struct.point797* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point798, align 4 + %4 = bitcast %struct.point798* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo799(%struct.point799* noalias sret(%struct.point799) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point799* %0 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo800(%struct.point800* noalias sret(%struct.point800) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point800, align 4 + %4 = bitcast %struct.point800* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point800* %0 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo801(%struct.point801* noalias sret(%struct.point801) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point801, align 4 + %4 = bitcast %struct.point801* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point801* %0 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo802(%struct.point802* noalias sret(%struct.point802) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point802, align 4 + %4 = bitcast %struct.point802* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point802* %0 to i8* + %6 = bitcast %struct.point802* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo803(%struct.point803* noalias sret(%struct.point803) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point803, align 4 + %4 = bitcast %struct.point803* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point803* %0 to i8* + %6 = bitcast %struct.point803* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo804(%struct.point804* noalias sret(%struct.point804) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point804, align 4 + %4 = bitcast %struct.point804* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point804* %0 to i8* + %6 = bitcast %struct.point804* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo805(%struct.point805* noalias sret(%struct.point805) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point805* %0 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo806(%struct.point806* noalias sret(%struct.point806) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point806, align 4 + %4 = bitcast %struct.point806* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point806* %0 to i8* + %6 = bitcast %struct.point806* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo807(%struct.point807* noalias sret(%struct.point807) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point807, align 4 + %4 = bitcast %struct.point807* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point807* %0 to i8* + %6 = bitcast %struct.point807* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo808(%struct.point808* noalias sret(%struct.point808) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point808, align 4 + %4 = bitcast %struct.point808* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point808* %0 to i8* + %6 = bitcast %struct.point808* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo809(%struct.point809* noalias sret(%struct.point809) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point809, align 4 + %4 = bitcast %struct.point809* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point809* %0 to i8* + %6 = bitcast %struct.point809* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo810(%struct.point810* noalias sret(%struct.point810) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point810, align 4 + %4 = bitcast %struct.point810* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point810* %0 to i8* + %6 = bitcast %struct.point810* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo811(%struct.point811* noalias sret(%struct.point811) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point811, align 4 + %4 = bitcast %struct.point811* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point811* %0 to i8* + %6 = bitcast %struct.point811* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo812(%struct.point812* noalias sret(%struct.point812) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point812, align 4 + %4 = bitcast %struct.point812* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point812* %0 to i8* + %6 = bitcast %struct.point812* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo813(%struct.point813* noalias sret(%struct.point813) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point813, align 4 + %4 = bitcast %struct.point813* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point813* %0 to i8* + %6 = bitcast %struct.point813* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo814(%struct.point814* noalias sret(%struct.point814) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point814, align 4 + %4 = bitcast %struct.point814* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point814* %0 to i8* + %6 = bitcast %struct.point814* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo815(%struct.point815* noalias sret(%struct.point815) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point815, align 4 + %4 = bitcast %struct.point815* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point815* %0 to i8* + %6 = bitcast %struct.point815* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo816(%struct.point816* noalias sret(%struct.point816) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point816, align 4 + %4 = bitcast %struct.point816* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point816* %0 to i8* + %6 = bitcast %struct.point816* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo817(%struct.point817* noalias sret(%struct.point817) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point817, align 4 + %4 = bitcast %struct.point817* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point817* %0 to i8* + %6 = bitcast %struct.point817* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo818(%struct.point818* noalias sret(%struct.point818) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point818, align 4 + %4 = bitcast %struct.point818* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point818* %0 to i8* + %6 = bitcast %struct.point818* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo819(%struct.point819* noalias sret(%struct.point819) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point819, align 4 + %4 = bitcast %struct.point819* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point819* %0 to i8* + %6 = bitcast %struct.point819* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo820(%struct.point820* noalias sret(%struct.point820) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point820* %0 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo821(%struct.point821* noalias sret(%struct.point821) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point821, align 4 + %4 = bitcast %struct.point821* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point821* %0 to i8* + %6 = bitcast %struct.point821* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo822(%struct.point822* noalias sret(%struct.point822) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point822, align 4 + %4 = bitcast %struct.point822* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point822* %0 to i8* + %6 = bitcast %struct.point822* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo823(%struct.point823* noalias sret(%struct.point823) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point823, align 4 + %4 = bitcast %struct.point823* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point823* %0 to i8* + %6 = bitcast %struct.point823* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo824(%struct.point824* noalias sret(%struct.point824) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point824, align 4 + %4 = bitcast %struct.point824* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point824* %0 to i8* + %6 = bitcast %struct.point824* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo825(%struct.point825* noalias sret(%struct.point825) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point825, align 4 + %4 = bitcast %struct.point825* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point825* %0 to i8* + %6 = bitcast %struct.point825* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo826(%struct.point826* noalias sret(%struct.point826) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point826, align 4 + %4 = bitcast %struct.point826* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point826* %0 to i8* + %6 = bitcast %struct.point826* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo827(%struct.point827* noalias sret(%struct.point827) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point827, align 4 + %4 = bitcast %struct.point827* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point827* %0 to i8* + %6 = bitcast %struct.point827* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo828(%struct.point828* noalias sret(%struct.point828) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point828, align 4 + %4 = bitcast %struct.point828* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point828* %0 to i8* + %6 = bitcast %struct.point828* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo829(%struct.point829* noalias sret(%struct.point829) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point829, align 4 + %4 = bitcast %struct.point829* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point829* %0 to i8* + %6 = bitcast %struct.point829* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo830(%struct.point830* noalias sret(%struct.point830) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point830, align 4 + %4 = bitcast %struct.point830* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point830* %0 to i8* + %6 = bitcast %struct.point830* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo831(%struct.point831* noalias sret(%struct.point831) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point831, align 4 + %4 = bitcast %struct.point831* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point831* %0 to i8* + %6 = bitcast %struct.point831* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo832(%struct.point832* noalias sret(%struct.point832) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point832, align 4 + %4 = bitcast %struct.point832* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point832* %0 to i8* + %6 = bitcast %struct.point832* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo833(%struct.point833* noalias sret(%struct.point833) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point833, align 4 + %4 = bitcast %struct.point833* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point833* %0 to i8* + %6 = bitcast %struct.point833* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo834(%struct.point834* noalias sret(%struct.point834) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point834, align 4 + %4 = bitcast %struct.point834* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point834* %0 to i8* + %6 = bitcast %struct.point834* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo835(%struct.point835* noalias sret(%struct.point835) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point835, align 4 + %4 = bitcast %struct.point835* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point835* %0 to i8* + %6 = bitcast %struct.point835* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo836(%struct.point836* noalias sret(%struct.point836) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point836, align 4 + %4 = bitcast %struct.point836* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point836* %0 to i8* + %6 = bitcast %struct.point836* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo837(%struct.point837* noalias sret(%struct.point837) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point837, align 4 + %4 = bitcast %struct.point837* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point837* %0 to i8* + %6 = bitcast %struct.point837* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo838(%struct.point838* noalias sret(%struct.point838) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point838, align 4 + %4 = bitcast %struct.point838* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point838* %0 to i8* + %6 = bitcast %struct.point838* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo839(%struct.point839* noalias sret(%struct.point839) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point839, align 4 + %4 = bitcast %struct.point839* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point839* %0 to i8* + %6 = bitcast %struct.point839* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo840(%struct.point840* noalias sret(%struct.point840) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point840, align 4 + %4 = bitcast %struct.point840* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point840* %0 to i8* + %6 = bitcast %struct.point840* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo841(%struct.point841* noalias sret(%struct.point841) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point841, align 4 + %4 = bitcast %struct.point841* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point841* %0 to i8* + %6 = bitcast %struct.point841* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo842(%struct.point842* noalias sret(%struct.point842) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point842, align 4 + %4 = bitcast %struct.point842* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point842* %0 to i8* + %6 = bitcast %struct.point842* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo843(%struct.point843* noalias sret(%struct.point843) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point843, align 4 + %4 = bitcast %struct.point843* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point843* %0 to i8* + %6 = bitcast %struct.point843* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo844(%struct.point844* noalias sret(%struct.point844) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point844, align 4 + %4 = bitcast %struct.point844* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point844* %0 to i8* + %6 = bitcast %struct.point844* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point845, align 4 + %4 = bitcast %struct.point845* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point846, align 4 + %4 = bitcast %struct.point846* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo847(%struct.point847* noalias sret(%struct.point847) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point847, align 4 + %4 = bitcast %struct.point847* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point847* %0 to i8* + %6 = bitcast %struct.point847* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo848(%struct.point848* noalias sret(%struct.point848) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point848, align 4 + %4 = bitcast %struct.point848* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point848* %0 to i8* + %6 = bitcast %struct.point848* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo849(%struct.point849* noalias sret(%struct.point849) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point849, align 4 + %4 = bitcast %struct.point849* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point849* %0 to i8* + %6 = bitcast %struct.point849* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point850, align 4 + %4 = bitcast %struct.point850* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point851, align 4 + %4 = bitcast %struct.point851* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo852(%struct.point852* noalias sret(%struct.point852) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point852, align 4 + %4 = bitcast %struct.point852* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point852* %0 to i8* + %6 = bitcast %struct.point852* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point853, align 4 + %4 = bitcast %struct.point853* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point854, align 4 + %4 = bitcast %struct.point854* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point855, align 4 + %4 = bitcast %struct.point855* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point856, align 4 + %4 = bitcast %struct.point856* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo857(%struct.point857* noalias sret(%struct.point857) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point857, align 4 + %4 = bitcast %struct.point857* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point857* %0 to i8* + %6 = bitcast %struct.point857* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point858, align 4 + %4 = bitcast %struct.point858* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point859, align 4 + %4 = bitcast %struct.point859* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point860, align 4 + %4 = bitcast %struct.point860* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point861, align 4 + %4 = bitcast %struct.point861* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo862(%struct.point862* noalias sret(%struct.point862) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point862, align 4 + %4 = bitcast %struct.point862* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point862* %0 to i8* + %6 = bitcast %struct.point862* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo863(%struct.point863* noalias sret(%struct.point863) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point863, align 4 + %4 = bitcast %struct.point863* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point863* %0 to i8* + %6 = bitcast %struct.point863* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo864(%struct.point864* noalias sret(%struct.point864) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point864, align 4 + %4 = bitcast %struct.point864* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point864* %0 to i8* + %6 = bitcast %struct.point864* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo865(%struct.point865* noalias sret(%struct.point865) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point865, align 4 + %4 = bitcast %struct.point865* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point865* %0 to i8* + %6 = bitcast %struct.point865* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point866, align 4 + %4 = bitcast %struct.point866* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point867, align 4 + %4 = bitcast %struct.point867* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo868(%struct.point868* noalias sret(%struct.point868) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point868, align 4 + %4 = bitcast %struct.point868* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point868* %0 to i8* + %6 = bitcast %struct.point868* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo869(%struct.point869* noalias sret(%struct.point869) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point869, align 4 + %4 = bitcast %struct.point869* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point869* %0 to i8* + %6 = bitcast %struct.point869* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo870(%struct.point870* noalias sret(%struct.point870) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point870, align 4 + %4 = bitcast %struct.point870* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point870* %0 to i8* + %6 = bitcast %struct.point870* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point871, align 4 + %4 = bitcast %struct.point871* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point872, align 4 + %4 = bitcast %struct.point872* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo873(%struct.point873* noalias sret(%struct.point873) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point873, align 4 + %4 = bitcast %struct.point873* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point873* %0 to i8* + %6 = bitcast %struct.point873* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point874, align 4 + %4 = bitcast %struct.point874* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point875, align 4 + %4 = bitcast %struct.point875* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point876, align 4 + %4 = bitcast %struct.point876* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point877, align 4 + %4 = bitcast %struct.point877* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo878(%struct.point878* noalias sret(%struct.point878) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point878, align 4 + %4 = bitcast %struct.point878* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point878* %0 to i8* + %6 = bitcast %struct.point878* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point879, align 4 + %4 = bitcast %struct.point879* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point880, align 4 + %4 = bitcast %struct.point880* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point881, align 4 + %4 = bitcast %struct.point881* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point882, align 4 + %4 = bitcast %struct.point882* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo883(%struct.point883* noalias sret(%struct.point883) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point883* %0 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo884(%struct.point884* noalias sret(%struct.point884) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point884, align 4 + %4 = bitcast %struct.point884* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point884* %0 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo885(%struct.point885* noalias sret(%struct.point885) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point885, align 4 + %4 = bitcast %struct.point885* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point885* %0 to i8* + %6 = bitcast %struct.point885* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo886(%struct.point886* noalias sret(%struct.point886) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point886, align 4 + %4 = bitcast %struct.point886* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point886* %0 to i8* + %6 = bitcast %struct.point886* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo887(%struct.point887* noalias sret(%struct.point887) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point887, align 4 + %4 = bitcast %struct.point887* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point887* %0 to i8* + %6 = bitcast %struct.point887* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo888(%struct.point888* noalias sret(%struct.point888) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point888, align 4 + %4 = bitcast %struct.point888* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point888* %0 to i8* + %6 = bitcast %struct.point888* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo889(%struct.point889* noalias sret(%struct.point889) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point889, align 4 + %4 = bitcast %struct.point889* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point889* %0 to i8* + %6 = bitcast %struct.point889* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo890(%struct.point890* noalias sret(%struct.point890) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point890, align 4 + %4 = bitcast %struct.point890* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point890* %0 to i8* + %6 = bitcast %struct.point890* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo891(%struct.point891* noalias sret(%struct.point891) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point891, align 4 + %4 = bitcast %struct.point891* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point891* %0 to i8* + %6 = bitcast %struct.point891* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo892(%struct.point892* noalias sret(%struct.point892) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point892, align 4 + %4 = bitcast %struct.point892* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point892* %0 to i8* + %6 = bitcast %struct.point892* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo893(%struct.point893* noalias sret(%struct.point893) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point893, align 4 + %4 = bitcast %struct.point893* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point893* %0 to i8* + %6 = bitcast %struct.point893* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo894(%struct.point894* noalias sret(%struct.point894) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point894, align 4 + %4 = bitcast %struct.point894* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point894* %0 to i8* + %6 = bitcast %struct.point894* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo895(%struct.point895* noalias sret(%struct.point895) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point895, align 4 + %4 = bitcast %struct.point895* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point895* %0 to i8* + %6 = bitcast %struct.point895* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo896(%struct.point896* noalias sret(%struct.point896) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point896, align 4 + %4 = bitcast %struct.point896* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point896* %0 to i8* + %6 = bitcast %struct.point896* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo897(%struct.point897* noalias sret(%struct.point897) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point897, align 4 + %4 = bitcast %struct.point897* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point897* %0 to i8* + %6 = bitcast %struct.point897* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo898(%struct.point898* noalias sret(%struct.point898) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point898, align 4 + %4 = bitcast %struct.point898* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point898* %0 to i8* + %6 = bitcast %struct.point898* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo899(%struct.point899* noalias sret(%struct.point899) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point899, align 4 + %4 = bitcast %struct.point899* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point899* %0 to i8* + %6 = bitcast %struct.point899* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo900(%struct.point900* noalias sret(%struct.point900) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point900, align 4 + %4 = bitcast %struct.point900* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point900* %0 to i8* + %6 = bitcast %struct.point900* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo901(%struct.point901* noalias sret(%struct.point901) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point901, align 4 + %4 = bitcast %struct.point901* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point901* %0 to i8* + %6 = bitcast %struct.point901* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo902(%struct.point902* noalias sret(%struct.point902) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point902, align 4 + %4 = bitcast %struct.point902* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point902* %0 to i8* + %6 = bitcast %struct.point902* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo903(%struct.point903* noalias sret(%struct.point903) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point903, align 4 + %4 = bitcast %struct.point903* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point903* %0 to i8* + %6 = bitcast %struct.point903* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo904(%struct.point904* noalias sret(%struct.point904) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point904* %0 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo905(%struct.point905* noalias sret(%struct.point905) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point905, align 4 + %4 = bitcast %struct.point905* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point905* %0 to i8* + %6 = bitcast %struct.point905* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo906(%struct.point906* noalias sret(%struct.point906) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point906, align 4 + %4 = bitcast %struct.point906* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point906* %0 to i8* + %6 = bitcast %struct.point906* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo907(%struct.point907* noalias sret(%struct.point907) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point907, align 4 + %4 = bitcast %struct.point907* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point907* %0 to i8* + %6 = bitcast %struct.point907* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo908(%struct.point908* noalias sret(%struct.point908) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point908, align 4 + %4 = bitcast %struct.point908* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point908* %0 to i8* + %6 = bitcast %struct.point908* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo909(%struct.point909* noalias sret(%struct.point909) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point909, align 4 + %4 = bitcast %struct.point909* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point909* %0 to i8* + %6 = bitcast %struct.point909* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo910(%struct.point910* noalias sret(%struct.point910) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point910, align 4 + %4 = bitcast %struct.point910* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point910* %0 to i8* + %6 = bitcast %struct.point910* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo911(%struct.point911* noalias sret(%struct.point911) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point911, align 4 + %4 = bitcast %struct.point911* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point911* %0 to i8* + %6 = bitcast %struct.point911* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo912(%struct.point912* noalias sret(%struct.point912) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point912, align 4 + %4 = bitcast %struct.point912* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point912* %0 to i8* + %6 = bitcast %struct.point912* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo913(%struct.point913* noalias sret(%struct.point913) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point913, align 4 + %4 = bitcast %struct.point913* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point913* %0 to i8* + %6 = bitcast %struct.point913* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo914(%struct.point914* noalias sret(%struct.point914) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point914, align 4 + %4 = bitcast %struct.point914* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point914* %0 to i8* + %6 = bitcast %struct.point914* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo915(%struct.point915* noalias sret(%struct.point915) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point915, align 4 + %4 = bitcast %struct.point915* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point915* %0 to i8* + %6 = bitcast %struct.point915* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo916(%struct.point916* noalias sret(%struct.point916) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point916, align 4 + %4 = bitcast %struct.point916* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point916* %0 to i8* + %6 = bitcast %struct.point916* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo917(%struct.point917* noalias sret(%struct.point917) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point917, align 4 + %4 = bitcast %struct.point917* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point917* %0 to i8* + %6 = bitcast %struct.point917* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo918(%struct.point918* noalias sret(%struct.point918) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point918, align 4 + %4 = bitcast %struct.point918* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point918* %0 to i8* + %6 = bitcast %struct.point918* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo919(%struct.point919* noalias sret(%struct.point919) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point919, align 4 + %4 = bitcast %struct.point919* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point919* %0 to i8* + %6 = bitcast %struct.point919* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo920(%struct.point920* noalias sret(%struct.point920) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point920, align 4 + %4 = bitcast %struct.point920* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point920* %0 to i8* + %6 = bitcast %struct.point920* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo921(%struct.point921* noalias sret(%struct.point921) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point921, align 4 + %4 = bitcast %struct.point921* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point921* %0 to i8* + %6 = bitcast %struct.point921* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo922(%struct.point922* noalias sret(%struct.point922) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point922, align 4 + %4 = bitcast %struct.point922* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point922* %0 to i8* + %6 = bitcast %struct.point922* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo923(%struct.point923* noalias sret(%struct.point923) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point923, align 4 + %4 = bitcast %struct.point923* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point923* %0 to i8* + %6 = bitcast %struct.point923* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo924(%struct.point924* noalias sret(%struct.point924) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point924, align 4 + %4 = bitcast %struct.point924* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point924* %0 to i8* + %6 = bitcast %struct.point924* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo925(%struct.point925* noalias sret(%struct.point925) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point925, align 4 + %4 = bitcast %struct.point925* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point925* %0 to i8* + %6 = bitcast %struct.point925* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo926(%struct.point926* noalias sret(%struct.point926) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point926, align 4 + %4 = bitcast %struct.point926* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point926* %0 to i8* + %6 = bitcast %struct.point926* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo927(%struct.point927* noalias sret(%struct.point927) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point927, align 4 + %4 = bitcast %struct.point927* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point927* %0 to i8* + %6 = bitcast %struct.point927* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo928(%struct.point928* noalias sret(%struct.point928) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point928, align 4 + %4 = bitcast %struct.point928* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point928* %0 to i8* + %6 = bitcast %struct.point928* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point929, align 4 + %4 = bitcast %struct.point929* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point930, align 4 + %4 = bitcast %struct.point930* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo931(%struct.point931* noalias sret(%struct.point931) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point931, align 4 + %4 = bitcast %struct.point931* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point931* %0 to i8* + %6 = bitcast %struct.point931* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo932(%struct.point932* noalias sret(%struct.point932) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point932, align 4 + %4 = bitcast %struct.point932* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point932* %0 to i8* + %6 = bitcast %struct.point932* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo933(%struct.point933* noalias sret(%struct.point933) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point933, align 4 + %4 = bitcast %struct.point933* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point933* %0 to i8* + %6 = bitcast %struct.point933* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point934, align 4 + %4 = bitcast %struct.point934* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point935, align 4 + %4 = bitcast %struct.point935* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo936(%struct.point936* noalias sret(%struct.point936) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point936, align 4 + %4 = bitcast %struct.point936* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point936* %0 to i8* + %6 = bitcast %struct.point936* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point937, align 4 + %4 = bitcast %struct.point937* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point938, align 4 + %4 = bitcast %struct.point938* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point939, align 4 + %4 = bitcast %struct.point939* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point940, align 4 + %4 = bitcast %struct.point940* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo941(%struct.point941* noalias sret(%struct.point941) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point941, align 4 + %4 = bitcast %struct.point941* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point941* %0 to i8* + %6 = bitcast %struct.point941* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point942, align 4 + %4 = bitcast %struct.point942* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point943, align 4 + %4 = bitcast %struct.point943* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point944, align 4 + %4 = bitcast %struct.point944* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point945, align 4 + %4 = bitcast %struct.point945* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo946(%struct.point946* noalias sret(%struct.point946) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point946, align 4 + %4 = bitcast %struct.point946* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point946* %0 to i8* + %6 = bitcast %struct.point946* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo947(%struct.point947* noalias sret(%struct.point947) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point947, align 4 + %4 = bitcast %struct.point947* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point947* %0 to i8* + %6 = bitcast %struct.point947* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo948(%struct.point948* noalias sret(%struct.point948) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point948, align 4 + %4 = bitcast %struct.point948* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point948* %0 to i8* + %6 = bitcast %struct.point948* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo949(%struct.point949* noalias sret(%struct.point949) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point949, align 4 + %4 = bitcast %struct.point949* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point949* %0 to i8* + %6 = bitcast %struct.point949* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point950, align 4 + %4 = bitcast %struct.point950* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point951, align 4 + %4 = bitcast %struct.point951* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo952(%struct.point952* noalias sret(%struct.point952) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point952, align 4 + %4 = bitcast %struct.point952* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point952* %0 to i8* + %6 = bitcast %struct.point952* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo953(%struct.point953* noalias sret(%struct.point953) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point953, align 4 + %4 = bitcast %struct.point953* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point953* %0 to i8* + %6 = bitcast %struct.point953* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo954(%struct.point954* noalias sret(%struct.point954) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point954, align 4 + %4 = bitcast %struct.point954* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point954* %0 to i8* + %6 = bitcast %struct.point954* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point955, align 4 + %4 = bitcast %struct.point955* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point956, align 4 + %4 = bitcast %struct.point956* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo957(%struct.point957* noalias sret(%struct.point957) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point957, align 4 + %4 = bitcast %struct.point957* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point957* %0 to i8* + %6 = bitcast %struct.point957* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point958, align 4 + %4 = bitcast %struct.point958* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point959, align 4 + %4 = bitcast %struct.point959* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point960, align 4 + %4 = bitcast %struct.point960* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point961, align 4 + %4 = bitcast %struct.point961* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo962(%struct.point962* noalias sret(%struct.point962) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point962, align 4 + %4 = bitcast %struct.point962* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point962* %0 to i8* + %6 = bitcast %struct.point962* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point963, align 4 + %4 = bitcast %struct.point963* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point964, align 4 + %4 = bitcast %struct.point964* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point965, align 4 + %4 = bitcast %struct.point965* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point966, align 4 + %4 = bitcast %struct.point966* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo967(%struct.point967* noalias sret(%struct.point967) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point967, align 4 + %4 = bitcast %struct.point967* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point967* %0 to i8* + %6 = bitcast %struct.point967* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo968(%struct.point968* noalias sret(%struct.point968) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point968, align 4 + %4 = bitcast %struct.point968* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point968* %0 to i8* + %6 = bitcast %struct.point968* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo969(%struct.point969* noalias sret(%struct.point969) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point969, align 4 + %4 = bitcast %struct.point969* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point969* %0 to i8* + %6 = bitcast %struct.point969* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo970(%struct.point970* noalias sret(%struct.point970) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point970, align 4 + %4 = bitcast %struct.point970* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point970* %0 to i8* + %6 = bitcast %struct.point970* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo971(%struct.point971* noalias sret(%struct.point971) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point971, align 4 + %4 = bitcast %struct.point971* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point971* %0 to i8* + %6 = bitcast %struct.point971* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo972(%struct.point972* noalias sret(%struct.point972) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point972, align 4 + %4 = bitcast %struct.point972* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point972* %0 to i8* + %6 = bitcast %struct.point972* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo973(%struct.point973* noalias sret(%struct.point973) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point973, align 4 + %4 = bitcast %struct.point973* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point973* %0 to i8* + %6 = bitcast %struct.point973* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo974(%struct.point974* noalias sret(%struct.point974) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point974, align 4 + %4 = bitcast %struct.point974* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point974* %0 to i8* + %6 = bitcast %struct.point974* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo975(%struct.point975* noalias sret(%struct.point975) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point975, align 4 + %4 = bitcast %struct.point975* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point975* %0 to i8* + %6 = bitcast %struct.point975* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo976(%struct.point976* noalias sret(%struct.point976) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point976, align 4 + %4 = bitcast %struct.point976* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point976* %0 to i8* + %6 = bitcast %struct.point976* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo977(%struct.point977* noalias sret(%struct.point977) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point977, align 4 + %4 = bitcast %struct.point977* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point977* %0 to i8* + %6 = bitcast %struct.point977* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo978(%struct.point978* noalias sret(%struct.point978) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point978, align 4 + %4 = bitcast %struct.point978* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point978* %0 to i8* + %6 = bitcast %struct.point978* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point979, align 4 + %4 = bitcast %struct.point979* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point980, align 4 + %4 = bitcast %struct.point980* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point981, align 4 + %4 = bitcast %struct.point981* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point982, align 4 + %4 = bitcast %struct.point982* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo983(%struct.point983* noalias sret(%struct.point983) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point983, align 4 + %4 = bitcast %struct.point983* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point983* %0 to i8* + %6 = bitcast %struct.point983* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point984, align 4 + %4 = bitcast %struct.point984* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point985, align 4 + %4 = bitcast %struct.point985* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point986, align 4 + %4 = bitcast %struct.point986* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point987, align 4 + %4 = bitcast %struct.point987* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo988(%struct.point988* noalias sret(%struct.point988) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point988, align 4 + %4 = bitcast %struct.point988* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point988* %0 to i8* + %6 = bitcast %struct.point988* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo989(%struct.point989* noalias sret(%struct.point989) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point989, align 4 + %4 = bitcast %struct.point989* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point989* %0 to i8* + %6 = bitcast %struct.point989* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo990(%struct.point990* noalias sret(%struct.point990) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point990, align 4 + %4 = bitcast %struct.point990* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point990* %0 to i8* + %6 = bitcast %struct.point990* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo991(%struct.point991* noalias sret(%struct.point991) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point991, align 4 + %4 = bitcast %struct.point991* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point991* %0 to i8* + %6 = bitcast %struct.point991* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo992(%struct.point992* noalias sret(%struct.point992) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point992, align 4 + %4 = bitcast %struct.point992* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point992* %0 to i8* + %6 = bitcast %struct.point992* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo993(%struct.point993* noalias sret(%struct.point993) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point993, align 4 + %4 = bitcast %struct.point993* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point993* %0 to i8* + %6 = bitcast %struct.point993* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo994(%struct.point994* noalias sret(%struct.point994) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point994, align 4 + %4 = bitcast %struct.point994* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point994* %0 to i8* + %6 = bitcast %struct.point994* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo995(%struct.point995* noalias sret(%struct.point995) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point995, align 4 + %4 = bitcast %struct.point995* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point995* %0 to i8* + %6 = bitcast %struct.point995* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo996(%struct.point996* noalias sret(%struct.point996) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point996, align 4 + %4 = bitcast %struct.point996* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point996* %0 to i8* + %6 = bitcast %struct.point996* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo997(%struct.point997* noalias sret(%struct.point997) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point997, align 4 + %4 = bitcast %struct.point997* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point997* %0 to i8* + %6 = bitcast %struct.point997* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo998(%struct.point998* noalias sret(%struct.point998) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point998, align 4 + %4 = bitcast %struct.point998* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point998* %0 to i8* + %6 = bitcast %struct.point998* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo999(%struct.point999* noalias sret(%struct.point999) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point999, align 4 + %4 = bitcast %struct.point999* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point999* %0 to i8* + %6 = bitcast %struct.point999* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1000, align 4 + %4 = bitcast %struct.point1000* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1001, align 4 + %4 = bitcast %struct.point1001* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1002, align 4 + %4 = bitcast %struct.point1002* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1003, align 4 + %4 = bitcast %struct.point1003* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1004(%struct.point1004* noalias sret(%struct.point1004) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1004, align 4 + %4 = bitcast %struct.point1004* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1004* %0 to i8* + %6 = bitcast %struct.point1004* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1005, align 4 + %4 = bitcast %struct.point1005* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1006, align 4 + %4 = bitcast %struct.point1006* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1007, align 4 + %4 = bitcast %struct.point1007* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1008, align 4 + %4 = bitcast %struct.point1008* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1009(%struct.point1009* noalias sret(%struct.point1009) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point1009, align 4 + %4 = bitcast %struct.point1009* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point1009* %0 to i8* + %6 = bitcast %struct.point1009* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1010(%struct.point1010* noalias sret(%struct.point1010) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1010, align 4 + %4 = bitcast %struct.point1010* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1010* %0 to i8* + %6 = bitcast %struct.point1010* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1011(%struct.point1011* noalias sret(%struct.point1011) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1011, align 4 + %4 = bitcast %struct.point1011* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1011* %0 to i8* + %6 = bitcast %struct.point1011* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1012(%struct.point1012* noalias sret(%struct.point1012) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1012, align 4 + %4 = bitcast %struct.point1012* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1012* %0 to i8* + %6 = bitcast %struct.point1012* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1013, align 4 + %4 = bitcast %struct.point1013* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1014, align 4 + %4 = bitcast %struct.point1014* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1015(%struct.point1015* noalias sret(%struct.point1015) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1015, align 4 + %4 = bitcast %struct.point1015* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1015* %0 to i8* + %6 = bitcast %struct.point1015* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1016(%struct.point1016* noalias sret(%struct.point1016) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1016, align 4 + %4 = bitcast %struct.point1016* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1016* %0 to i8* + %6 = bitcast %struct.point1016* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1017(%struct.point1017* noalias sret(%struct.point1017) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1017, align 4 + %4 = bitcast %struct.point1017* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1017* %0 to i8* + %6 = bitcast %struct.point1017* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1018, align 4 + %4 = bitcast %struct.point1018* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1019, align 4 + %4 = bitcast %struct.point1019* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1020(%struct.point1020* noalias sret(%struct.point1020) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1020, align 4 + %4 = bitcast %struct.point1020* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1020* %0 to i8* + %6 = bitcast %struct.point1020* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1021, align 4 + %4 = bitcast %struct.point1021* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1022, align 4 + %4 = bitcast %struct.point1022* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1023, align 4 + %4 = bitcast %struct.point1023* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1024, align 4 + %4 = bitcast %struct.point1024* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1025(%struct.point1025* noalias sret(%struct.point1025) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1025, align 4 + %4 = bitcast %struct.point1025* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1025* %0 to i8* + %6 = bitcast %struct.point1025* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1026, align 4 + %4 = bitcast %struct.point1026* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1027, align 4 + %4 = bitcast %struct.point1027* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1028, align 4 + %4 = bitcast %struct.point1028* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1029, align 4 + %4 = bitcast %struct.point1029* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1030(%struct.point1030* noalias sret(%struct.point1030) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point1030, align 4 + %4 = bitcast %struct.point1030* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point1030* %0 to i8* + %6 = bitcast %struct.point1030* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1031(%struct.point1031* noalias sret(%struct.point1031) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1031, align 4 + %4 = bitcast %struct.point1031* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1031* %0 to i8* + %6 = bitcast %struct.point1031* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1032(%struct.point1032* noalias sret(%struct.point1032) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1032, align 4 + %4 = bitcast %struct.point1032* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1032* %0 to i8* + %6 = bitcast %struct.point1032* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1033(%struct.point1033* noalias sret(%struct.point1033) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1033, align 4 + %4 = bitcast %struct.point1033* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1033* %0 to i8* + %6 = bitcast %struct.point1033* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1034, align 4 + %4 = bitcast %struct.point1034* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1035, align 4 + %4 = bitcast %struct.point1035* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1036(%struct.point1036* noalias sret(%struct.point1036) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1036, align 4 + %4 = bitcast %struct.point1036* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1036* %0 to i8* + %6 = bitcast %struct.point1036* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1037(%struct.point1037* noalias sret(%struct.point1037) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1037, align 4 + %4 = bitcast %struct.point1037* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1037* %0 to i8* + %6 = bitcast %struct.point1037* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1038(%struct.point1038* noalias sret(%struct.point1038) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1038, align 4 + %4 = bitcast %struct.point1038* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1038* %0 to i8* + %6 = bitcast %struct.point1038* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1039, align 4 + %4 = bitcast %struct.point1039* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1040, align 4 + %4 = bitcast %struct.point1040* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1041(%struct.point1041* noalias sret(%struct.point1041) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1041, align 4 + %4 = bitcast %struct.point1041* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1041* %0 to i8* + %6 = bitcast %struct.point1041* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1042, align 4 + %4 = bitcast %struct.point1042* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1043, align 4 + %4 = bitcast %struct.point1043* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1044, align 4 + %4 = bitcast %struct.point1044* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1045, align 4 + %4 = bitcast %struct.point1045* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1046(%struct.point1046* noalias sret(%struct.point1046) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point1046, align 4 + %4 = bitcast %struct.point1046* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point1046* %0 to i8* + %6 = bitcast %struct.point1046* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1047, align 4 + %4 = bitcast %struct.point1047* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1048, align 4 + %4 = bitcast %struct.point1048* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1049, align 4 + %4 = bitcast %struct.point1049* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point1050, align 4 + %4 = bitcast %struct.point1050* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/armv6/struct_uintptr.ll b/internal/cabi/_testdata/arch/armv6/struct_uintptr.ll new file mode 100644 index 00000000..caf23465 --- /dev/null +++ b/internal/cabi/_testdata/arch/armv6/struct_uintptr.ll @@ -0,0 +1,258 @@ +; ModuleID = '../../wrap/struct_uintptr.c' +source_filename = "../../wrap/struct_uintptr.c" +target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" +target triple = "armv6kz-unknown-linux-gnueabihf" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo1([1 x i32] %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast i8** %4 to [1 x i32]* + store [1 x i32] %0, [1 x i32]* %5, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 4 + %10 = ptrtoint i8* %9 to i32 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, [2 x i32] %1) #0 { + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to [2 x i32]* + store [2 x i32] %1, [2 x i32]* %4, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, [3 x i32] %1) #0 { + %3 = alloca %struct.point3, align 4 + %4 = bitcast %struct.point3* %3 to [3 x i32]* + store [3 x i32] %1, [3 x i32]* %4, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, [4 x i32] %1) #0 { + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [4 x i32]* + store [4 x i32] %1, [4 x i32]* %4, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, [5 x i32] %1) #0 { + %3 = alloca %struct.point5, align 4 + %4 = bitcast %struct.point5* %3 to [5 x i32]* + store [5 x i32] %1, [5 x i32]* %4, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, [6 x i32] %1) #0 { + %3 = alloca %struct.point6, align 4 + %4 = bitcast %struct.point6* %3 to [6 x i32]* + store [6 x i32] %1, [6 x i32]* %4, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, [7 x i32] %1) #0 { + %3 = alloca %struct.point7, align 4 + %4 = bitcast %struct.point7* %3 to [7 x i32]* + store [7 x i32] %1, [7 x i32]* %4, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, [8 x i32] %1) #0 { + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to [8 x i32]* + store [8 x i32] %1, [8 x i32]* %4, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, [9 x i32] %1) #0 { + %3 = alloca %struct.point9, align 4 + %4 = bitcast %struct.point9* %3 to [9 x i32]* + store [9 x i32] %1, [9 x i32]* %4, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, [10 x i32] %1) #0 { + %3 = alloca %struct.point10, align 4 + %4 = bitcast %struct.point10* %3 to [10 x i32]* + store [10 x i32] %1, [10 x i32]* %4, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, [11 x i32] %1) #0 { + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to [11 x i32]* + store [11 x i32] %1, [11 x i32]* %4, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, [12 x i32] %1) #0 { + %3 = alloca %struct.point12, align 4 + %4 = bitcast %struct.point12* %3 to [12 x i32]* + store [12 x i32] %1, [12 x i32]* %4, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, [13 x i32] %1) #0 { + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to [13 x i32]* + store [13 x i32] %1, [13 x i32]* %4, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, [14 x i32] %1) #0 { + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to [14 x i32]* + store [14 x i32] %1, [14 x i32]* %4, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, [15 x i32] %1) #0 { + %3 = alloca %struct.point15, align 4 + %4 = bitcast %struct.point15* %3 to [15 x i32]* + store [15 x i32] %1, [15 x i32]* %4, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, [16 x i32] %1) #0 { + %3 = alloca %struct.point16, align 4 + %4 = bitcast %struct.point16* %3 to [16 x i32]* + store [16 x i32] %1, [16 x i32]* %4, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="arm1176jzf-s" "target-features"="+armv6kz,+dsp,+fp64,+strict-align,+vfp2,+vfp2sp,-aes,-d32,-fp-armv8,-fp-armv8d16,-fp-armv8d16sp,-fp-armv8sp,-fp16,-fp16fml,-fullfp16,-neon,-sha2,-thumb-mode,-vfp3,-vfp3d16,-vfp3d16sp,-vfp3sp,-vfp4,-vfp4d16,-vfp4d16sp,-vfp4sp" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} +!llvm.ident = !{!9} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"min_enum_size", i32 4} +!2 = !{i32 8, !"branch-target-enforcement", i32 0} +!3 = !{i32 8, !"sign-return-address", i32 0} +!4 = !{i32 8, !"sign-return-address-all", i32 0} +!5 = !{i32 8, !"sign-return-address-with-bkey", i32 0} +!6 = !{i32 7, !"PIC Level", i32 2} +!7 = !{i32 7, !"PIE Level", i32 2} +!8 = !{i32 7, !"frame-pointer", i32 2} +!9 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_float32.ll b/internal/cabi/_testdata/arch/i386/array_float32.ll new file mode 100644 index 00000000..e18a030e --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_float32.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 4 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_float64.ll b/internal/cabi/_testdata/arch/i386/array_float64.ll new file mode 100644 index 00000000..1f453621 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_float64.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 4 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_int16.ll b/internal/cabi/_testdata/arch/i386/array_int16.ll new file mode 100644 index 00000000..c06d4bb0 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_int16.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 2 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 2, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 2 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 2 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 2 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 2 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 2 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 2 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 2 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_int32.ll b/internal/cabi/_testdata/arch/i386/array_int32.ll new file mode 100644 index 00000000..c2758d0d --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_int32.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 4 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_int64.ll b/internal/cabi/_testdata/arch/i386/array_int64.ll new file mode 100644 index 00000000..f21ba43c --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_int64.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 4 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_int8.ll b/internal/cabi/_testdata/arch/i386/array_int8.ll new file mode 100644 index 00000000..1912bab0 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_int8.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 1 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 1, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 1 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 2, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 1 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 3, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 1 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 1 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 1 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 1 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 7, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 1 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 1 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 1 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 1 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 1 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 1 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 1 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 1 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 1 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_pointer.ll b/internal/cabi/_testdata/arch/i386/array_pointer.ll new file mode 100644 index 00000000..6e396fd9 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_pointer.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 4 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/array_uintptr.ll b/internal/cabi/_testdata/arch/i386/array_uintptr.ll new file mode 100644 index 00000000..54b09786 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/array_uintptr.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/array_uintptr.c' +source_filename = "../../wrap/array_uintptr.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.array1* noalias sret(%struct.array1) align 4 %0, %struct.array1* noundef byval(%struct.array1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array1* %0 to i8* + %6 = bitcast %struct.array1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array2* %0 to i8* + %6 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/basic.ll b/internal/cabi/_testdata/arch/i386/basic.ll new file mode 100644 index 00000000..d3828d0d --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/basic.ll @@ -0,0 +1,73 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local signext i8 @basic_int8(i8 noundef signext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { + %2 = alloca i8*, align 4 + store i8* %0, i8** %2, align 4 + %3 = load i8*, i8** %2, align 4 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/composite.ll b/internal/cabi/_testdata/arch/i386/composite.ll new file mode 100644 index 00000000..1a8a6c30 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/composite.ll @@ -0,0 +1,122 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_array10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_array11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_point10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_point11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_array20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_array21(%struct.array21* noalias sret(%struct.array21) align 4 %0, %struct.array21* noundef byval(%struct.array21) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.array21* %0 to i8* + %6 = bitcast %struct.array21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_point20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo_point21(%struct.point21* noalias sret(%struct.point21) align 4 %0, %struct.point21* noundef byval(%struct.point21) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point21* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point21* %0 to i8* + %6 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/demo.ll b/internal/cabi/_testdata/arch/i386/demo.ll new file mode 100644 index 00000000..09d01f16 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/demo.ll @@ -0,0 +1,857 @@ +; ModuleID = '../../wrap/demo.c' +source_filename = "../../wrap/demo.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point = type { i32, i32 } +%struct.point1 = type { i32, i32, i32 } +%struct.point64 = type { i64, i64 } +%struct.struct32 = type { i32 } +%struct.point2 = type { i8, i32, i32 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i32 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i32 } +%struct.point7 = type { i8, i8, i8, i8, i8, i32, i8 } +%struct.data1 = type { i8, i64 } +%struct.data2 = type { i32, i64 } +%struct.data3 = type { i64, i8 } +%struct.fdata1 = type { float } +%struct.ddata1 = type { double } +%struct.ddata2 = type { double, double } +%struct.ddata3 = type { double, double, double } +%struct.fdata2i = type { float, i32 } +%struct.fdata2 = type { float, float } +%struct.fdata3 = type { float, float, float } +%struct.fdata4 = type { float, float, float, float } +%struct.fdata5 = type { float, float, float, float, float } +%struct.fdata2id = type { i8, i8, double } +%struct.fdata7if = type { [7 x i8], float } +%struct.fdata4if = type { float, i8, float, float } +%struct.array = type { [8 x i32] } + +@.str = private unnamed_addr constant [20 x i8] c"point64: %lld %lld\0A\00", align 1 +@.str.1 = private unnamed_addr constant [14 x i8] c"struct32: %d\0A\00", align 1 +@.str.2 = private unnamed_addr constant [14 x i8] c"point: %d %d\0A\00", align 1 +@.str.3 = private unnamed_addr constant [18 x i8] c"point1: %d %d %d\0A\00", align 1 +@.str.4 = private unnamed_addr constant [18 x i8] c"point2: %d %d %d\0A\00", align 1 +@.str.5 = private unnamed_addr constant [18 x i8] c"point3: %d %d %d\0A\00", align 1 +@.str.6 = private unnamed_addr constant [21 x i8] c"point4: %d %d %d %d\0A\00", align 1 +@.str.7 = private unnamed_addr constant [24 x i8] c"point5: %d %d %d %d %d\0A\00", align 1 +@.str.8 = private unnamed_addr constant [27 x i8] c"point6: %d %d %d %d %d %d\0A\00", align 1 +@.str.9 = private unnamed_addr constant [30 x i8] c"point7: %d %d %d %d %d %d %d\0A\00", align 1 +@.str.10 = private unnamed_addr constant [16 x i8] c"data1: %d %lld\0A\00", align 1 +@.str.11 = private unnamed_addr constant [16 x i8] c"data2: %d %lld\0A\00", align 1 +@.str.12 = private unnamed_addr constant [16 x i8] c"data3: %lld %d\0A\00", align 1 +@.str.13 = private unnamed_addr constant [9 x i8] c"ff1: %f\0A\00", align 1 +@.str.14 = private unnamed_addr constant [9 x i8] c"dd1: %f\0A\00", align 1 +@.str.15 = private unnamed_addr constant [12 x i8] c"dd2: %f %f\0A\00", align 1 +@.str.16 = private unnamed_addr constant [15 x i8] c"dd3: %f %f %f\0A\00", align 1 +@.str.17 = private unnamed_addr constant [13 x i8] c"ff2i: %f %d\0A\00", align 1 +@.str.18 = private unnamed_addr constant [12 x i8] c"ff2: %f %f\0A\00", align 1 +@.str.19 = private unnamed_addr constant [15 x i8] c"ff3: %f %f %f\0A\00", align 1 +@.str.20 = private unnamed_addr constant [18 x i8] c"ff4: %f %f %f %f\0A\00", align 1 +@.str.21 = private unnamed_addr constant [21 x i8] c"ff5: %f %f %f %f %f\0A\00", align 1 +@.str.22 = private unnamed_addr constant [15 x i8] c"ff6: %d %d %f\0A\00", align 1 +@.str.23 = private unnamed_addr constant [17 x i8] c"ff7if: %d %d %f\0A\00", align 1 +@.str.24 = private unnamed_addr constant [20 x i8] c"ff4if: %f %d %f %f\0A\00", align 1 +@.str.25 = private unnamed_addr constant [16 x i8] c"demo: %d %d %d\0A\00", align 1 +@__const.callback.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.26 = private unnamed_addr constant [27 x i8] c"callback1 array: %d %d %d\0A\00", align 1 +@__const.callback1.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback1.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.27 = private unnamed_addr constant [22 x i8] c"callback1 ret: %d,%d\0A\00", align 1 +@.str.28 = private unnamed_addr constant [28 x i8] c"mycallback array: %d %d %d\0A\00", align 1 +@.str.29 = private unnamed_addr constant [22 x i8] c"mycallback pt: %d %d\0A\00", align 1 +@.str.30 = private unnamed_addr constant [26 x i8] c"mycallback pt1: %d %d %d\0A\00", align 1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + %4 = add nsw i32 %3, 100 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i64 @demo64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + %4 = add nsw i64 %3, 100 + ret i64 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt64(%struct.point64* noalias sret(%struct.point64) align 4 %0, i64 %1, i64 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point64, align 4 + %6 = bitcast %struct.point64* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point64, %struct.point64* %5, i32 0, i32 0 + store i64 %1, i64* %7, align 4 + %8 = getelementptr inbounds %struct.point64, %struct.point64* %5, i32 0, i32 1 + store i64 %2, i64* %8, align 4 + %9 = getelementptr inbounds %struct.point64, %struct.point64* %5, i32 0, i32 0 + %10 = load i64, i64* %9, align 4 + %11 = getelementptr inbounds %struct.point64, %struct.point64* %5, i32 0, i32 1 + %12 = load i64, i64* %11, align 4 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i32 0, i32 0), i64 noundef %10, i64 noundef %12) + %14 = bitcast %struct.point64* %0 to i8* + %15 = bitcast %struct.point64* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 %15, i32 16, i1 false) + ret void +} + +declare i32 @printf(i8* noundef, ...) #1 + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #2 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo32s(%struct.struct32* noalias sret(%struct.struct32) align 4 %0, i32 %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.struct32, align 4 + %5 = bitcast %struct.struct32* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.struct32, %struct.struct32* %4, i32 0, i32 0 + store i32 %1, i32* %6, align 4 + %7 = getelementptr inbounds %struct.struct32, %struct.struct32* %4, i32 0, i32 0 + %8 = load i32, i32* %7, align 4 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i32 0, i32 0), i32 noundef %8) + %10 = getelementptr inbounds %struct.struct32, %struct.struct32* %0, i32 0, i32 0 + %11 = getelementptr inbounds %struct.struct32, %struct.struct32* %4, i32 0, i32 0 + %12 = load i32, i32* %11, align 4 + %13 = add nsw i32 %12, 100 + store i32 %13, i32* %10, align 4 + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt(%struct.point* noalias sret(%struct.point) align 4 %0, i32 %1, i32 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point, align 4 + %6 = bitcast %struct.point* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + store i32 %1, i32* %7, align 4 + %8 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + store i32 %2, i32* %8, align 4 + %9 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + %11 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + %12 = load i32, i32* %11, align 4 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i32 0, i32 0), i32 noundef %10, i32 noundef %12) + %14 = bitcast %struct.point* %0 to i8* + %15 = bitcast %struct.point* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 %15, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt1(%struct.point1* noalias sret(%struct.point1) align 4 %0, i32 %1, i32 %2, i32 %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point1, align 4 + %7 = bitcast %struct.point1* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 0 + store i32 %1, i32* %8, align 4 + %9 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 1 + store i32 %2, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 2 + store i32 %3, i32* %10, align 4 + %11 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 0 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 1 + %14 = load i32, i32* %13, align 4 + %15 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 2 + %16 = load i32, i32* %15, align 4 + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i32 0, i32 0), i32 noundef %12, i32 noundef %14, i32 noundef %16) + %18 = bitcast %struct.point1* %0 to i8* + %19 = bitcast %struct.point1* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %18, i8* align 4 %19, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt2(%struct.point2* noalias sret(%struct.point2) align 4 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.point2, %struct.point2* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %1, i32 0, i32 1 + %9 = load i32, i32* %8, align 4 + %10 = getelementptr inbounds %struct.point2, %struct.point2* %1, i32 0, i32 2 + %11 = load i32, i32* %10, align 4 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i32 0, i32 0), i32 noundef %7, i32 noundef %9, i32 noundef %11) + %13 = bitcast %struct.point2* %0 to i8* + %14 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt3(%struct.point3* noalias sret(%struct.point3) align 1 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.point3, %struct.point3* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point3, %struct.point3* %1, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point3, %struct.point3* %1, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = sext i8 %12 to i32 + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13) + %15 = bitcast %struct.point3* %0 to i8* + %16 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %15, i8* align 4 %16, i32 3, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 3 + %15 = load i32, i32* %14, align 4 + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %15) + %17 = bitcast %struct.point4* %0 to i8* + %18 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %17, i8* align 4 %18, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt5(%struct.point5* noalias sret(%struct.point5) align 1 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 3 + %15 = load i8, i8* %14, align 1 + %16 = sext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 4 + %18 = load i8, i8* %17, align 4 + %19 = sext i8 %18 to i32 + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19) + %21 = bitcast %struct.point5* %0 to i8* + %22 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %21, i8* align 4 %22, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 3 + %15 = load i8, i8* %14, align 1 + %16 = sext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 4 + %18 = load i8, i8* %17, align 4 + %19 = sext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 5 + %21 = load i32, i32* %20, align 4 + %22 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %21) + %23 = bitcast %struct.point6* %0 to i8* + %24 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %23, i8* align 4 %24, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @pt7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = sext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 3 + %15 = load i8, i8* %14, align 1 + %16 = sext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 4 + %18 = load i8, i8* %17, align 4 + %19 = sext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 5 + %21 = load i32, i32* %20, align 4 + %22 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 6 + %23 = load i8, i8* %22, align 4 + %24 = sext i8 %23 to i32 + %25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %21, i32 noundef %24) + %26 = bitcast %struct.point7* %0 to i8* + %27 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %26, i8* align 4 %27, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @fn1(%struct.data1* noalias sret(%struct.data1) align 4 %0, %struct.data1* noundef byval(%struct.data1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.data1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.data1, %struct.data1* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.data1, %struct.data1* %1, i32 0, i32 1 + %9 = load i64, i64* %8, align 4 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i32 0, i32 0), i32 noundef %7, i64 noundef %9) + %11 = bitcast %struct.data1* %0 to i8* + %12 = bitcast %struct.data1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @fn2(%struct.data2* noalias sret(%struct.data2) align 4 %0, i32 %1, i64 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.data2, align 4 + %6 = bitcast %struct.data2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.data2, %struct.data2* %5, i32 0, i32 0 + store i32 %1, i32* %7, align 4 + %8 = getelementptr inbounds %struct.data2, %struct.data2* %5, i32 0, i32 1 + store i64 %2, i64* %8, align 4 + %9 = getelementptr inbounds %struct.data2, %struct.data2* %5, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + %11 = getelementptr inbounds %struct.data2, %struct.data2* %5, i32 0, i32 1 + %12 = load i64, i64* %11, align 4 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i32 0, i32 0), i32 noundef %10, i64 noundef %12) + %14 = bitcast %struct.data2* %0 to i8* + %15 = bitcast %struct.data2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 %15, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @fn3(%struct.data3* noalias sret(%struct.data3) align 4 %0, %struct.data3* noundef byval(%struct.data3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.data3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.data3, %struct.data3* %1, i32 0, i32 0 + %6 = load i64, i64* %5, align 4 + %7 = getelementptr inbounds %struct.data3, %struct.data3* %1, i32 0, i32 1 + %8 = load i8, i8* %7, align 4 + %9 = sext i8 %8 to i32 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i32 0, i32 0), i64 noundef %6, i32 noundef %9) + %11 = bitcast %struct.data3* %0 to i8* + %12 = bitcast %struct.data3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff1(%struct.fdata1* noalias sret(%struct.fdata1) align 4 %0, float %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.fdata1, align 4 + %5 = bitcast %struct.fdata1* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %4, i32 0, i32 0 + store float %1, float* %6, align 4 + %7 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %4, i32 0, i32 0 + %8 = load float, float* %7, align 4 + %9 = fpext float %8 to double + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i32 0, i32 0), double noundef %9) + %11 = bitcast %struct.fdata1* %0 to i8* + %12 = bitcast %struct.fdata1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @dd1(%struct.ddata1* noalias sret(%struct.ddata1) align 4 %0, double %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.ddata1, align 4 + %5 = bitcast %struct.ddata1* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %4, i32 0, i32 0 + store double %1, double* %6, align 4 + %7 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %4, i32 0, i32 0 + %8 = load double, double* %7, align 4 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i32 0, i32 0), double noundef %8) + %10 = bitcast %struct.ddata1* %0 to i8* + %11 = bitcast %struct.ddata1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 4 %11, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @dd2(%struct.ddata2* noalias sret(%struct.ddata2) align 4 %0, double %1, double %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.ddata2, align 4 + %6 = bitcast %struct.ddata2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %5, i32 0, i32 0 + store double %1, double* %7, align 4 + %8 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %5, i32 0, i32 1 + store double %2, double* %8, align 4 + %9 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %5, i32 0, i32 0 + %10 = load double, double* %9, align 4 + %11 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %5, i32 0, i32 1 + %12 = load double, double* %11, align 4 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i32 0, i32 0), double noundef %10, double noundef %12) + %14 = bitcast %struct.ddata2* %0 to i8* + %15 = bitcast %struct.ddata2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 %15, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @dd3(%struct.ddata3* noalias sret(%struct.ddata3) align 4 %0, %struct.ddata3* noundef byval(%struct.ddata3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.ddata3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 0 + %6 = load double, double* %5, align 4 + %7 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 1 + %8 = load double, double* %7, align 4 + %9 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 2 + %10 = load double, double* %9, align 4 + %11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i32 0, i32 0), double noundef %6, double noundef %8, double noundef %10) + %12 = bitcast %struct.ddata3* %0 to i8* + %13 = bitcast %struct.ddata3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %12, i8* align 4 %13, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff2i(%struct.fdata2i* noalias sret(%struct.fdata2i) align 4 %0, float %1, i32 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.fdata2i, align 4 + %6 = bitcast %struct.fdata2i* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %5, i32 0, i32 0 + store float %1, float* %7, align 4 + %8 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %5, i32 0, i32 1 + store i32 %2, i32* %8, align 4 + %9 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %5, i32 0, i32 0 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %5, i32 0, i32 1 + %13 = load i32, i32* %12, align 4 + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i32 0, i32 0), double noundef %11, i32 noundef %13) + %15 = bitcast %struct.fdata2i* %0 to i8* + %16 = bitcast %struct.fdata2i* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %15, i8* align 4 %16, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff2(%struct.fdata2* noalias sret(%struct.fdata2) align 4 %0, float %1, float %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.fdata2, align 4 + %6 = bitcast %struct.fdata2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %5, i32 0, i32 0 + store float %1, float* %7, align 4 + %8 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %5, i32 0, i32 1 + store float %2, float* %8, align 4 + %9 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %5, i32 0, i32 0 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %5, i32 0, i32 1 + %13 = load float, float* %12, align 4 + %14 = fpext float %13 to double + %15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i32 0, i32 0), double noundef %11, double noundef %14) + %16 = bitcast %struct.fdata2* %0 to i8* + %17 = bitcast %struct.fdata2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %16, i8* align 4 %17, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff3(%struct.fdata3* noalias sret(%struct.fdata3) align 4 %0, float %1, float %2, float %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.fdata3, align 4 + %7 = bitcast %struct.fdata3* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %6, i32 0, i32 0 + store float %1, float* %8, align 4 + %9 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %6, i32 0, i32 1 + store float %2, float* %9, align 4 + %10 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %6, i32 0, i32 2 + store float %3, float* %10, align 4 + %11 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %6, i32 0, i32 0 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %6, i32 0, i32 1 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %6, i32 0, i32 2 + %18 = load float, float* %17, align 4 + %19 = fpext float %18 to double + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i32 0, i32 0), double noundef %13, double noundef %16, double noundef %19) + %21 = bitcast %struct.fdata3* %0 to i8* + %22 = bitcast %struct.fdata3* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %21, i8* align 4 %22, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff4(%struct.fdata4* noalias sret(%struct.fdata4) align 4 %0, float %1, float %2, float %3, float %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.fdata4, align 4 + %8 = bitcast %struct.fdata4* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 0 + store float %1, float* %9, align 4 + %10 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 1 + store float %2, float* %10, align 4 + %11 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 2 + store float %3, float* %11, align 4 + %12 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 3 + store float %4, float* %12, align 4 + %13 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 0 + %14 = load float, float* %13, align 4 + %15 = fpext float %14 to double + %16 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 1 + %17 = load float, float* %16, align 4 + %18 = fpext float %17 to double + %19 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 2 + %20 = load float, float* %19, align 4 + %21 = fpext float %20 to double + %22 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %7, i32 0, i32 3 + %23 = load float, float* %22, align 4 + %24 = fpext float %23 to double + %25 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i32 0, i32 0), double noundef %15, double noundef %18, double noundef %21, double noundef %24) + %26 = bitcast %struct.fdata4* %0 to i8* + %27 = bitcast %struct.fdata4* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %26, i8* align 4 %27, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff5(%struct.fdata5* noalias sret(%struct.fdata5) align 4 %0, %struct.fdata5* noundef byval(%struct.fdata5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.fdata5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 4 + %18 = load float, float* %17, align 4 + %19 = fpext float %18 to double + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i32 0, i32 0), double noundef %7, double noundef %10, double noundef %13, double noundef %16, double noundef %19) + %21 = bitcast %struct.fdata5* %0 to i8* + %22 = bitcast %struct.fdata5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %21, i8* align 4 %22, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff2id(%struct.fdata2id* noalias sret(%struct.fdata2id) align 4 %0, %struct.fdata2id* noundef byval(%struct.fdata2id) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.fdata2id* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %1, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = sext i8 %6 to i32 + %8 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %1, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %1, i32 0, i32 2 + %12 = load double, double* %11, align 4 + %13 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i32 0, i32 0), i32 noundef %7, i32 noundef %10, double noundef %12) + %14 = bitcast %struct.fdata2id* %0 to i8* + %15 = bitcast %struct.fdata2id* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %14, i8* align 4 %15, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff7if(%struct.fdata7if* noalias sret(%struct.fdata7if) align 4 %0, %struct.fdata7if* noundef byval(%struct.fdata7if) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.fdata7if* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %1, i32 0, i32 0 + %6 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i32 0, i32 0 + %7 = load i8, i8* %6, align 4 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %1, i32 0, i32 0 + %10 = getelementptr inbounds [7 x i8], [7 x i8]* %9, i32 0, i32 1 + %11 = load i8, i8* %10, align 1 + %12 = sext i8 %11 to i32 + %13 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %1, i32 0, i32 1 + %14 = load float, float* %13, align 4 + %15 = fpext float %14 to double + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i32 0, i32 0), i32 noundef %8, i32 noundef %12, double noundef %15) + %17 = bitcast %struct.fdata7if* %0 to i8* + %18 = bitcast %struct.fdata7if* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %17, i8* align 4 %18, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @ff4if(%struct.fdata4if* noalias sret(%struct.fdata4if) align 4 %0, %struct.fdata4if* noundef byval(%struct.fdata4if) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.fdata4if* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 1 + %9 = load i8, i8* %8, align 4 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i32 0, i32 0), double noundef %7, i32 noundef %10, double noundef %13, double noundef %16) + %18 = bitcast %struct.fdata4if* %0 to i8* + %19 = bitcast %struct.fdata4if* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %18, i8* align 4 %19, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo(%struct.array* noalias sret(%struct.array) align 4 %0, %struct.array* noundef byval(%struct.array) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.array* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %6 = getelementptr inbounds [8 x i32], [8 x i32]* %5, i32 0, i32 0 + %7 = load i32, i32* %6, align 4 + %8 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %9 = getelementptr inbounds [8 x i32], [8 x i32]* %8, i32 0, i32 1 + %10 = load i32, i32* %9, align 4 + %11 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i32 0, i32 2 + %13 = load i32, i32* %12, align 4 + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.25, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13) + %15 = bitcast %struct.array* %0 to i8* + %16 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %15, i8* align 4 %16, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.array* noalias sret(%struct.array) align 4 %0, i32 noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = bitcast %struct.array* %0 to i8* + store i8* %6, i8** %3, align 4 + store i32 %1, i32* %4, align 4 + store i32 0, i32* %5, align 4 + br label %7 + +7: ; preds = %17, %2 + %8 = load i32, i32* %5, align 4 + %9 = icmp slt i32 %8, 8 + br i1 %9, label %10, label %20 + +10: ; preds = %7 + %11 = load i32, i32* %5, align 4 + %12 = load i32, i32* %4, align 4 + %13 = add nsw i32 %11, %12 + %14 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %15 = load i32, i32* %5, align 4 + %16 = getelementptr inbounds [8 x i32], [8 x i32]* %14, i32 0, i32 %15 + store i32 %13, i32* %16, align 4 + br label %17 + +17: ; preds = %10 + %18 = load i32, i32* %5, align 4 + %19 = add nsw i32 %18, 1 + store i32 %19, i32* %5, align 4 + br label %7, !llvm.loop !7 + +20: ; preds = %7 + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @callback(void (%struct.array*, %struct.array*, i32, i32, i32, i32, i32)* noundef %0, %struct.array* noundef byval(%struct.array) align 4 %1) #0 { + %3 = alloca void (%struct.array*, %struct.array*, i32, i32, i32, i32, i32)*, align 4 + %4 = alloca %struct.array, align 4 + %5 = alloca %struct.point, align 4 + %6 = alloca %struct.point1, align 4 + %7 = alloca %struct.array, align 4 + %8 = alloca %struct.array, align 4 + store void (%struct.array*, %struct.array*, i32, i32, i32, i32, i32)* %0, void (%struct.array*, %struct.array*, i32, i32, i32, i32, i32)** %3, align 4 + call void @demo(%struct.array* sret(%struct.array) align 4 %4, %struct.array* noundef byval(%struct.array) align 4 %1) + %9 = bitcast %struct.point* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 bitcast (%struct.point* @__const.callback.pt to i8*), i32 8, i1 false) + %10 = bitcast %struct.point1* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 4 bitcast (%struct.point1* @__const.callback.pt1 to i8*), i32 12, i1 false) + %11 = load void (%struct.array*, %struct.array*, i32, i32, i32, i32, i32)*, void (%struct.array*, %struct.array*, i32, i32, i32, i32, i32)** %3, align 4 + %12 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + %13 = load i32, i32* %12, align 4 + %14 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + %15 = load i32, i32* %14, align 4 + %16 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 0 + %17 = load i32, i32* %16, align 4 + %18 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 1 + %19 = load i32, i32* %18, align 4 + %20 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 2 + %21 = load i32, i32* %20, align 4 + call void %11(%struct.array* sret(%struct.array) align 4 %7, %struct.array* noundef byval(%struct.array) align 4 %1, i32 %13, i32 %15, i32 %17, i32 %19, i32 %21) + call void @demo(%struct.array* sret(%struct.array) align 4 %8, %struct.array* noundef byval(%struct.array) align 4 %7) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @callback1(void (%struct.point*, %struct.array*, i32, i32, i32, i32, i32)* noundef %0, %struct.array* noundef byval(%struct.array) align 4 %1) #0 { + %3 = alloca void (%struct.point*, %struct.array*, i32, i32, i32, i32, i32)*, align 4 + %4 = alloca %struct.point, align 4 + %5 = alloca %struct.point1, align 4 + %6 = alloca %struct.point, align 4 + store void (%struct.point*, %struct.array*, i32, i32, i32, i32, i32)* %0, void (%struct.point*, %struct.array*, i32, i32, i32, i32, i32)** %3, align 4 + %7 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %8 = getelementptr inbounds [8 x i32], [8 x i32]* %7, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + %10 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %11 = getelementptr inbounds [8 x i32], [8 x i32]* %10, i32 0, i32 1 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %14 = getelementptr inbounds [8 x i32], [8 x i32]* %13, i32 0, i32 7 + %15 = load i32, i32* %14, align 4 + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i32 0, i32 0), i32 noundef %9, i32 noundef %12, i32 noundef %15) + %17 = bitcast %struct.point* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %17, i8* align 4 bitcast (%struct.point* @__const.callback1.pt to i8*), i32 8, i1 false) + %18 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %18, i8* align 4 bitcast (%struct.point1* @__const.callback1.pt1 to i8*), i32 12, i1 false) + %19 = load void (%struct.point*, %struct.array*, i32, i32, i32, i32, i32)*, void (%struct.point*, %struct.array*, i32, i32, i32, i32, i32)** %3, align 4 + %20 = getelementptr inbounds %struct.point, %struct.point* %4, i32 0, i32 0 + %21 = load i32, i32* %20, align 4 + %22 = getelementptr inbounds %struct.point, %struct.point* %4, i32 0, i32 1 + %23 = load i32, i32* %22, align 4 + %24 = getelementptr inbounds %struct.point1, %struct.point1* %5, i32 0, i32 0 + %25 = load i32, i32* %24, align 4 + %26 = getelementptr inbounds %struct.point1, %struct.point1* %5, i32 0, i32 1 + %27 = load i32, i32* %26, align 4 + %28 = getelementptr inbounds %struct.point1, %struct.point1* %5, i32 0, i32 2 + %29 = load i32, i32* %28, align 4 + call void %19(%struct.point* sret(%struct.point) align 4 %6, %struct.array* noundef byval(%struct.array) align 4 %1, i32 %21, i32 %23, i32 %25, i32 %27, i32 %29) + %30 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %31 = load i32, i32* %30, align 4 + %32 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %33 = load i32, i32* %32, align 4 + %34 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i32 0, i32 0), i32 noundef %31, i32 noundef %33) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @mycallback(%struct.point* noalias sret(%struct.point) align 4 %0, %struct.array* noundef byval(%struct.array) align 4 %1, i32 %2, i32 %3, i32 %4, i32 %5, i32 %6) #0 { + %8 = alloca i8*, align 4 + %9 = alloca %struct.point, align 4 + %10 = alloca %struct.point1, align 4 + %11 = bitcast %struct.point* %0 to i8* + store i8* %11, i8** %8, align 4 + %12 = getelementptr inbounds %struct.point, %struct.point* %9, i32 0, i32 0 + store i32 %2, i32* %12, align 4 + %13 = getelementptr inbounds %struct.point, %struct.point* %9, i32 0, i32 1 + store i32 %3, i32* %13, align 4 + %14 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 0 + store i32 %4, i32* %14, align 4 + %15 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 1 + store i32 %5, i32* %15, align 4 + %16 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 2 + store i32 %6, i32* %16, align 4 + %17 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %18 = getelementptr inbounds [8 x i32], [8 x i32]* %17, i32 0, i32 0 + %19 = load i32, i32* %18, align 4 + %20 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %21 = getelementptr inbounds [8 x i32], [8 x i32]* %20, i32 0, i32 1 + %22 = load i32, i32* %21, align 4 + %23 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %24 = getelementptr inbounds [8 x i32], [8 x i32]* %23, i32 0, i32 7 + %25 = load i32, i32* %24, align 4 + %26 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i32 0, i32 0), i32 noundef %19, i32 noundef %22, i32 noundef %25) + %27 = getelementptr inbounds %struct.point, %struct.point* %9, i32 0, i32 0 + %28 = load i32, i32* %27, align 4 + %29 = getelementptr inbounds %struct.point, %struct.point* %9, i32 0, i32 1 + %30 = load i32, i32* %29, align 4 + %31 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i32 0, i32 0), i32 noundef %28, i32 noundef %30) + %32 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 0 + %33 = load i32, i32* %32, align 4 + %34 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 1 + %35 = load i32, i32* %34, align 4 + %36 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 2 + %37 = load i32, i32* %36, align 4 + %38 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.30, i32 0, i32 0), i32 noundef %33, i32 noundef %35, i32 noundef %37) + %39 = getelementptr inbounds %struct.point, %struct.point* %0, i32 0, i32 0 + %40 = getelementptr inbounds %struct.point, %struct.point* %9, i32 0, i32 0 + %41 = load i32, i32* %40, align 4 + %42 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 0 + %43 = load i32, i32* %42, align 4 + %44 = add nsw i32 %41, %43 + store i32 %44, i32* %39, align 4 + %45 = getelementptr inbounds %struct.point, %struct.point* %0, i32 0, i32 1 + %46 = getelementptr inbounds %struct.point, %struct.point* %9, i32 0, i32 1 + %47 = load i32, i32* %46, align 4 + %48 = getelementptr inbounds %struct.point1, %struct.point1* %10, i32 0, i32 1 + %49 = load i32, i32* %48, align 4 + %50 = add nsw i32 %47, %49 + store i32 %50, i32* %45, align 4 + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #2 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} +!7 = distinct !{!7, !8} +!8 = !{!"llvm.loop.mustprogress"} diff --git a/internal/cabi/_testdata/arch/i386/empty.ll b/internal/cabi/_testdata/arch/i386/empty.ll new file mode 100644 index 00000000..c2a4c9d0 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/empty.ll @@ -0,0 +1,71 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo0(%struct.empty* noalias sret(%struct.empty) align 1 %0) #0 { + %2 = alloca i8*, align 4 + %3 = alloca %struct.empty, align 1 + %4 = bitcast %struct.empty* %0 to i8* + store i8* %4, i8** %2, align 4 + %5 = bitcast %struct.empty* %0 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.empty* noalias sret(%struct.empty) align 1 %0, i32 noundef %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.empty, align 1 + %5 = alloca i32, align 4 + %6 = bitcast %struct.empty* %0 to i8* + store i8* %6, i8** %3, align 4 + store i32 %1, i32* %5, align 4 + %7 = bitcast %struct.empty* %0 to i8* + %8 = bitcast %struct.empty* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %7, i8* align 1 %8, i32 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_float32.ll b/internal/cabi/_testdata/arch/i386/struct_float32.ll new file mode 100644 index 00000000..96127c03 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_float32.ll @@ -0,0 +1,286 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 4 %0, float %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.point1, align 4 + %5 = bitcast %struct.point1* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 0 + store float %1, float* %6, align 4 + %7 = bitcast %struct.point1* %0 to i8* + %8 = bitcast %struct.point1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, float %1, float %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point2, align 4 + %6 = bitcast %struct.point2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 0 + store float %1, float* %7, align 4 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 1 + store float %2, float* %8, align 4 + %9 = bitcast %struct.point2* %0 to i8* + %10 = bitcast %struct.point2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, float %1, float %2, float %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point3, align 4 + %7 = bitcast %struct.point3* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 0 + store float %1, float* %8, align 4 + %9 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 1 + store float %2, float* %9, align 4 + %10 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 2 + store float %3, float* %10, align 4 + %11 = bitcast %struct.point3* %0 to i8* + %12 = bitcast %struct.point3* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, float %1, float %2, float %3, float %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point4, align 4 + %8 = bitcast %struct.point4* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 0 + store float %1, float* %9, align 4 + %10 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 1 + store float %2, float* %10, align 4 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 2 + store float %3, float* %11, align 4 + %12 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 3 + store float %4, float* %12, align 4 + %13 = bitcast %struct.point4* %0 to i8* + %14 = bitcast %struct.point4* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_float64.ll b/internal/cabi/_testdata/arch/i386/struct_float64.ll new file mode 100644 index 00000000..0173395b --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_float64.ll @@ -0,0 +1,270 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 4 %0, double %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.point1, align 4 + %5 = bitcast %struct.point1* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 0 + store double %1, double* %6, align 4 + %7 = bitcast %struct.point1* %0 to i8* + %8 = bitcast %struct.point1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 8, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, double %1, double %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point2, align 4 + %6 = bitcast %struct.point2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 0 + store double %1, double* %7, align 4 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 1 + store double %2, double* %8, align 4 + %9 = bitcast %struct.point2* %0 to i8* + %10 = bitcast %struct.point2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_int16.ll b/internal/cabi/_testdata/arch/i386/struct_int16.ll new file mode 100644 index 00000000..9dc9dc02 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_int16.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 2 %0, %struct.point1* noundef byval(%struct.point1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1* %0 to i8* + %6 = bitcast %struct.point1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 2, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 2 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 2 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 2 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 2 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 2 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 2 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_int32.ll b/internal/cabi/_testdata/arch/i386/struct_int32.ll new file mode 100644 index 00000000..d9d3ebbc --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_int32.ll @@ -0,0 +1,286 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 4 %0, i32 %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.point1, align 4 + %5 = bitcast %struct.point1* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 0 + store i32 %1, i32* %6, align 4 + %7 = bitcast %struct.point1* %0 to i8* + %8 = bitcast %struct.point1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, i32 %1, i32 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point2, align 4 + %6 = bitcast %struct.point2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 0 + store i32 %1, i32* %7, align 4 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 1 + store i32 %2, i32* %8, align 4 + %9 = bitcast %struct.point2* %0 to i8* + %10 = bitcast %struct.point2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, i32 %1, i32 %2, i32 %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point3, align 4 + %7 = bitcast %struct.point3* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 0 + store i32 %1, i32* %8, align 4 + %9 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 1 + store i32 %2, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 2 + store i32 %3, i32* %10, align 4 + %11 = bitcast %struct.point3* %0 to i8* + %12 = bitcast %struct.point3* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, i32 %1, i32 %2, i32 %3, i32 %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point4, align 4 + %8 = bitcast %struct.point4* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 0 + store i32 %1, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 1 + store i32 %2, i32* %10, align 4 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 2 + store i32 %3, i32* %11, align 4 + %12 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 3 + store i32 %4, i32* %12, align 4 + %13 = bitcast %struct.point4* %0 to i8* + %14 = bitcast %struct.point4* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_int64.ll b/internal/cabi/_testdata/arch/i386/struct_int64.ll new file mode 100644 index 00000000..6232cf2f --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_int64.ll @@ -0,0 +1,270 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 4 %0, i64 %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.point1, align 4 + %5 = bitcast %struct.point1* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 0 + store i64 %1, i64* %6, align 4 + %7 = bitcast %struct.point1* %0 to i8* + %8 = bitcast %struct.point1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 8, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, i64 %1, i64 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point2, align 4 + %6 = bitcast %struct.point2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 0 + store i64 %1, i64* %7, align 4 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 1 + store i64 %2, i64* %8, align 4 + %9 = bitcast %struct.point2* %0 to i8* + %10 = bitcast %struct.point2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_int8.ll b/internal/cabi/_testdata/arch/i386/struct_int8.ll new file mode 100644 index 00000000..3be200a1 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_int8.ll @@ -0,0 +1,262 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 1 %0, %struct.point1* noundef byval(%struct.point1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1* %0 to i8* + %6 = bitcast %struct.point1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 1, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 1 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 2, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 1 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 3, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 1 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 1 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 1 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 1 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 7, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 1 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 1 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 1 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 1 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 1 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 1 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 1 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 1 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 1 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_mixed.ll b/internal/cabi/_testdata/arch/i386/struct_mixed.ll new file mode 100644 index 00000000..4576a584 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_mixed.ll @@ -0,0 +1,12822 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 2 %0, %struct.point1* noundef byval(%struct.point1) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1* %0 to i8* + %6 = bitcast %struct.point1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point2* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point2* %0 to i8* + %6 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, i32 %1, i64 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point15, align 4 + %6 = bitcast %struct.point15* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point15, %struct.point15* %5, i32 0, i32 0 + store i32 %1, i32* %7, align 4 + %8 = getelementptr inbounds %struct.point15, %struct.point15* %5, i32 0, i32 1 + store i64 %2, i64* %8, align 4 + %9 = bitcast %struct.point15* %0 to i8* + %10 = bitcast %struct.point15* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, i32 %1, float %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point16, align 4 + %6 = bitcast %struct.point16* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point16, %struct.point16* %5, i32 0, i32 0 + store i32 %1, i32* %7, align 4 + %8 = getelementptr inbounds %struct.point16, %struct.point16* %5, i32 0, i32 1 + store float %2, float* %8, align 4 + %9 = bitcast %struct.point16* %0 to i8* + %10 = bitcast %struct.point16* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, i32 %1, double %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point17, align 4 + %6 = bitcast %struct.point17* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point17, %struct.point17* %5, i32 0, i32 0 + store i32 %1, i32* %7, align 4 + %8 = getelementptr inbounds %struct.point17, %struct.point17* %5, i32 0, i32 1 + store double %2, double* %8, align 4 + %9 = bitcast %struct.point17* %0 to i8* + %10 = bitcast %struct.point17* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, i32 %1, i8* %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point18, align 4 + %6 = bitcast %struct.point18* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point18, %struct.point18* %5, i32 0, i32 0 + store i32 %1, i32* %7, align 4 + %8 = getelementptr inbounds %struct.point18, %struct.point18* %5, i32 0, i32 1 + store i8* %2, i8** %8, align 4 + %9 = bitcast %struct.point18* %0 to i8* + %10 = bitcast %struct.point18* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo21(%struct.point21* noalias sret(%struct.point21) align 4 %0, i64 %1, i32 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point21, align 4 + %6 = bitcast %struct.point21* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point21, %struct.point21* %5, i32 0, i32 0 + store i64 %1, i64* %7, align 4 + %8 = getelementptr inbounds %struct.point21, %struct.point21* %5, i32 0, i32 1 + store i32 %2, i32* %8, align 4 + %9 = bitcast %struct.point21* %0 to i8* + %10 = bitcast %struct.point21* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo22(%struct.point22* noalias sret(%struct.point22) align 4 %0, i64 %1, float %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point22, align 4 + %6 = bitcast %struct.point22* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point22, %struct.point22* %5, i32 0, i32 0 + store i64 %1, i64* %7, align 4 + %8 = getelementptr inbounds %struct.point22, %struct.point22* %5, i32 0, i32 1 + store float %2, float* %8, align 4 + %9 = bitcast %struct.point22* %0 to i8* + %10 = bitcast %struct.point22* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo23(%struct.point23* noalias sret(%struct.point23) align 4 %0, i64 %1, double %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point23, align 4 + %6 = bitcast %struct.point23* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point23, %struct.point23* %5, i32 0, i32 0 + store i64 %1, i64* %7, align 4 + %8 = getelementptr inbounds %struct.point23, %struct.point23* %5, i32 0, i32 1 + store double %2, double* %8, align 4 + %9 = bitcast %struct.point23* %0 to i8* + %10 = bitcast %struct.point23* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo24(%struct.point24* noalias sret(%struct.point24) align 4 %0, i64 %1, i8* %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point24, align 4 + %6 = bitcast %struct.point24* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point24, %struct.point24* %5, i32 0, i32 0 + store i64 %1, i64* %7, align 4 + %8 = getelementptr inbounds %struct.point24, %struct.point24* %5, i32 0, i32 1 + store i8* %2, i8** %8, align 4 + %9 = bitcast %struct.point24* %0 to i8* + %10 = bitcast %struct.point24* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo25(%struct.point25* noalias sret(%struct.point25) align 4 %0, %struct.point25* noundef byval(%struct.point25) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point25* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point25* %0 to i8* + %6 = bitcast %struct.point25* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo26(%struct.point26* noalias sret(%struct.point26) align 4 %0, %struct.point26* noundef byval(%struct.point26) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point26* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point26* %0 to i8* + %6 = bitcast %struct.point26* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo27(%struct.point27* noalias sret(%struct.point27) align 4 %0, float %1, i32 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point27, align 4 + %6 = bitcast %struct.point27* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point27, %struct.point27* %5, i32 0, i32 0 + store float %1, float* %7, align 4 + %8 = getelementptr inbounds %struct.point27, %struct.point27* %5, i32 0, i32 1 + store i32 %2, i32* %8, align 4 + %9 = bitcast %struct.point27* %0 to i8* + %10 = bitcast %struct.point27* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo28(%struct.point28* noalias sret(%struct.point28) align 4 %0, float %1, i64 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point28, align 4 + %6 = bitcast %struct.point28* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point28, %struct.point28* %5, i32 0, i32 0 + store float %1, float* %7, align 4 + %8 = getelementptr inbounds %struct.point28, %struct.point28* %5, i32 0, i32 1 + store i64 %2, i64* %8, align 4 + %9 = bitcast %struct.point28* %0 to i8* + %10 = bitcast %struct.point28* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo29(%struct.point29* noalias sret(%struct.point29) align 4 %0, float %1, double %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point29, align 4 + %6 = bitcast %struct.point29* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point29, %struct.point29* %5, i32 0, i32 0 + store float %1, float* %7, align 4 + %8 = getelementptr inbounds %struct.point29, %struct.point29* %5, i32 0, i32 1 + store double %2, double* %8, align 4 + %9 = bitcast %struct.point29* %0 to i8* + %10 = bitcast %struct.point29* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo30(%struct.point30* noalias sret(%struct.point30) align 4 %0, float %1, i8* %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point30, align 4 + %6 = bitcast %struct.point30* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point30, %struct.point30* %5, i32 0, i32 0 + store float %1, float* %7, align 4 + %8 = getelementptr inbounds %struct.point30, %struct.point30* %5, i32 0, i32 1 + store i8* %2, i8** %8, align 4 + %9 = bitcast %struct.point30* %0 to i8* + %10 = bitcast %struct.point30* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo31(%struct.point31* noalias sret(%struct.point31) align 4 %0, %struct.point31* noundef byval(%struct.point31) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point31* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point31* %0 to i8* + %6 = bitcast %struct.point31* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo32(%struct.point32* noalias sret(%struct.point32) align 4 %0, %struct.point32* noundef byval(%struct.point32) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point32* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point32* %0 to i8* + %6 = bitcast %struct.point32* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo33(%struct.point33* noalias sret(%struct.point33) align 4 %0, double %1, i32 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point33, align 4 + %6 = bitcast %struct.point33* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point33, %struct.point33* %5, i32 0, i32 0 + store double %1, double* %7, align 4 + %8 = getelementptr inbounds %struct.point33, %struct.point33* %5, i32 0, i32 1 + store i32 %2, i32* %8, align 4 + %9 = bitcast %struct.point33* %0 to i8* + %10 = bitcast %struct.point33* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo34(%struct.point34* noalias sret(%struct.point34) align 4 %0, double %1, i64 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point34, align 4 + %6 = bitcast %struct.point34* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point34, %struct.point34* %5, i32 0, i32 0 + store double %1, double* %7, align 4 + %8 = getelementptr inbounds %struct.point34, %struct.point34* %5, i32 0, i32 1 + store i64 %2, i64* %8, align 4 + %9 = bitcast %struct.point34* %0 to i8* + %10 = bitcast %struct.point34* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo35(%struct.point35* noalias sret(%struct.point35) align 4 %0, double %1, float %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point35, align 4 + %6 = bitcast %struct.point35* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point35, %struct.point35* %5, i32 0, i32 0 + store double %1, double* %7, align 4 + %8 = getelementptr inbounds %struct.point35, %struct.point35* %5, i32 0, i32 1 + store float %2, float* %8, align 4 + %9 = bitcast %struct.point35* %0 to i8* + %10 = bitcast %struct.point35* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo36(%struct.point36* noalias sret(%struct.point36) align 4 %0, double %1, i8* %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point36, align 4 + %6 = bitcast %struct.point36* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point36, %struct.point36* %5, i32 0, i32 0 + store double %1, double* %7, align 4 + %8 = getelementptr inbounds %struct.point36, %struct.point36* %5, i32 0, i32 1 + store i8* %2, i8** %8, align 4 + %9 = bitcast %struct.point36* %0 to i8* + %10 = bitcast %struct.point36* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo37(%struct.point37* noalias sret(%struct.point37) align 4 %0, %struct.point37* noundef byval(%struct.point37) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point37* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point37* %0 to i8* + %6 = bitcast %struct.point37* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo38(%struct.point38* noalias sret(%struct.point38) align 4 %0, %struct.point38* noundef byval(%struct.point38) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point38* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point38* %0 to i8* + %6 = bitcast %struct.point38* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo39(%struct.point39* noalias sret(%struct.point39) align 4 %0, i8* %1, i32 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point39, align 4 + %6 = bitcast %struct.point39* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point39, %struct.point39* %5, i32 0, i32 0 + store i8* %1, i8** %7, align 4 + %8 = getelementptr inbounds %struct.point39, %struct.point39* %5, i32 0, i32 1 + store i32 %2, i32* %8, align 4 + %9 = bitcast %struct.point39* %0 to i8* + %10 = bitcast %struct.point39* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo40(%struct.point40* noalias sret(%struct.point40) align 4 %0, i8* %1, i64 %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point40, align 4 + %6 = bitcast %struct.point40* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point40, %struct.point40* %5, i32 0, i32 0 + store i8* %1, i8** %7, align 4 + %8 = getelementptr inbounds %struct.point40, %struct.point40* %5, i32 0, i32 1 + store i64 %2, i64* %8, align 4 + %9 = bitcast %struct.point40* %0 to i8* + %10 = bitcast %struct.point40* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo41(%struct.point41* noalias sret(%struct.point41) align 4 %0, i8* %1, float %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point41, align 4 + %6 = bitcast %struct.point41* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point41, %struct.point41* %5, i32 0, i32 0 + store i8* %1, i8** %7, align 4 + %8 = getelementptr inbounds %struct.point41, %struct.point41* %5, i32 0, i32 1 + store float %2, float* %8, align 4 + %9 = bitcast %struct.point41* %0 to i8* + %10 = bitcast %struct.point41* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo42(%struct.point42* noalias sret(%struct.point42) align 4 %0, i8* %1, double %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point42, align 4 + %6 = bitcast %struct.point42* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point42, %struct.point42* %5, i32 0, i32 0 + store i8* %1, i8** %7, align 4 + %8 = getelementptr inbounds %struct.point42, %struct.point42* %5, i32 0, i32 1 + store double %2, double* %8, align 4 + %9 = bitcast %struct.point42* %0 to i8* + %10 = bitcast %struct.point42* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo43(%struct.point43* noalias sret(%struct.point43) align 2 %0, %struct.point43* noundef byval(%struct.point43) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point43* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point43* %0 to i8* + %6 = bitcast %struct.point43* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo44(%struct.point44* noalias sret(%struct.point44) align 2 %0, %struct.point44* noundef byval(%struct.point44) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point44* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point44* %0 to i8* + %6 = bitcast %struct.point44* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo45(%struct.point45* noalias sret(%struct.point45) align 2 %0, %struct.point45* noundef byval(%struct.point45) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point45* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point45* %0 to i8* + %6 = bitcast %struct.point45* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo46(%struct.point46* noalias sret(%struct.point46) align 2 %0, %struct.point46* noundef byval(%struct.point46) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point46* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point46* %0 to i8* + %6 = bitcast %struct.point46* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo47(%struct.point47* noalias sret(%struct.point47) align 4 %0, %struct.point47* noundef byval(%struct.point47) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point47* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point47* %0 to i8* + %6 = bitcast %struct.point47* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo48(%struct.point48* noalias sret(%struct.point48) align 4 %0, %struct.point48* noundef byval(%struct.point48) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point48* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point48* %0 to i8* + %6 = bitcast %struct.point48* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo49(%struct.point49* noalias sret(%struct.point49) align 2 %0, %struct.point49* noundef byval(%struct.point49) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point49* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point49* %0 to i8* + %6 = bitcast %struct.point49* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo50(%struct.point50* noalias sret(%struct.point50) align 2 %0, %struct.point50* noundef byval(%struct.point50) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point50* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point50* %0 to i8* + %6 = bitcast %struct.point50* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo51(%struct.point51* noalias sret(%struct.point51) align 2 %0, %struct.point51* noundef byval(%struct.point51) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point51* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point51* %0 to i8* + %6 = bitcast %struct.point51* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo52(%struct.point52* noalias sret(%struct.point52) align 4 %0, %struct.point52* noundef byval(%struct.point52) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point52* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point52* %0 to i8* + %6 = bitcast %struct.point52* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo53(%struct.point53* noalias sret(%struct.point53) align 4 %0, %struct.point53* noundef byval(%struct.point53) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point53* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point53* %0 to i8* + %6 = bitcast %struct.point53* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo54(%struct.point54* noalias sret(%struct.point54) align 4 %0, %struct.point54* noundef byval(%struct.point54) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point54* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point54* %0 to i8* + %6 = bitcast %struct.point54* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo55(%struct.point55* noalias sret(%struct.point55) align 4 %0, %struct.point55* noundef byval(%struct.point55) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point55* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point55* %0 to i8* + %6 = bitcast %struct.point55* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo56(%struct.point56* noalias sret(%struct.point56) align 4 %0, %struct.point56* noundef byval(%struct.point56) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point56* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point56* %0 to i8* + %6 = bitcast %struct.point56* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo57(%struct.point57* noalias sret(%struct.point57) align 4 %0, %struct.point57* noundef byval(%struct.point57) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point57* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point57* %0 to i8* + %6 = bitcast %struct.point57* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo58(%struct.point58* noalias sret(%struct.point58) align 4 %0, %struct.point58* noundef byval(%struct.point58) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point58* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point58* %0 to i8* + %6 = bitcast %struct.point58* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo59(%struct.point59* noalias sret(%struct.point59) align 4 %0, %struct.point59* noundef byval(%struct.point59) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point59* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point59* %0 to i8* + %6 = bitcast %struct.point59* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo60(%struct.point60* noalias sret(%struct.point60) align 4 %0, %struct.point60* noundef byval(%struct.point60) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point60* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point60* %0 to i8* + %6 = bitcast %struct.point60* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo61(%struct.point61* noalias sret(%struct.point61) align 4 %0, %struct.point61* noundef byval(%struct.point61) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point61* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point61* %0 to i8* + %6 = bitcast %struct.point61* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo62(%struct.point62* noalias sret(%struct.point62) align 4 %0, %struct.point62* noundef byval(%struct.point62) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point62* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point62* %0 to i8* + %6 = bitcast %struct.point62* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo63(%struct.point63* noalias sret(%struct.point63) align 4 %0, %struct.point63* noundef byval(%struct.point63) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point63* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point63* %0 to i8* + %6 = bitcast %struct.point63* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo64(%struct.point64* noalias sret(%struct.point64) align 2 %0, %struct.point64* noundef byval(%struct.point64) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point64* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point64* %0 to i8* + %6 = bitcast %struct.point64* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo65(%struct.point65* noalias sret(%struct.point65) align 2 %0, %struct.point65* noundef byval(%struct.point65) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point65* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point65* %0 to i8* + %6 = bitcast %struct.point65* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo66(%struct.point66* noalias sret(%struct.point66) align 2 %0, %struct.point66* noundef byval(%struct.point66) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point66* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point66* %0 to i8* + %6 = bitcast %struct.point66* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo67(%struct.point67* noalias sret(%struct.point67) align 2 %0, %struct.point67* noundef byval(%struct.point67) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point67* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point67* %0 to i8* + %6 = bitcast %struct.point67* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo68(%struct.point68* noalias sret(%struct.point68) align 4 %0, %struct.point68* noundef byval(%struct.point68) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point68* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point68* %0 to i8* + %6 = bitcast %struct.point68* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo69(%struct.point69* noalias sret(%struct.point69) align 4 %0, %struct.point69* noundef byval(%struct.point69) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point69* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point69* %0 to i8* + %6 = bitcast %struct.point69* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo70(%struct.point70* noalias sret(%struct.point70) align 2 %0, %struct.point70* noundef byval(%struct.point70) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point70* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point70* %0 to i8* + %6 = bitcast %struct.point70* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo71(%struct.point71* noalias sret(%struct.point71) align 2 %0, %struct.point71* noundef byval(%struct.point71) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point71* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point71* %0 to i8* + %6 = bitcast %struct.point71* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo72(%struct.point72* noalias sret(%struct.point72) align 2 %0, %struct.point72* noundef byval(%struct.point72) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point72* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point72* %0 to i8* + %6 = bitcast %struct.point72* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo73(%struct.point73* noalias sret(%struct.point73) align 4 %0, %struct.point73* noundef byval(%struct.point73) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point73* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point73* %0 to i8* + %6 = bitcast %struct.point73* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo74(%struct.point74* noalias sret(%struct.point74) align 4 %0, %struct.point74* noundef byval(%struct.point74) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point74* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point74* %0 to i8* + %6 = bitcast %struct.point74* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo75(%struct.point75* noalias sret(%struct.point75) align 4 %0, %struct.point75* noundef byval(%struct.point75) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point75* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point75* %0 to i8* + %6 = bitcast %struct.point75* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo76(%struct.point76* noalias sret(%struct.point76) align 4 %0, %struct.point76* noundef byval(%struct.point76) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point76* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point76* %0 to i8* + %6 = bitcast %struct.point76* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo77(%struct.point77* noalias sret(%struct.point77) align 4 %0, %struct.point77* noundef byval(%struct.point77) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point77* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point77* %0 to i8* + %6 = bitcast %struct.point77* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo78(%struct.point78* noalias sret(%struct.point78) align 4 %0, %struct.point78* noundef byval(%struct.point78) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point78* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point78* %0 to i8* + %6 = bitcast %struct.point78* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo79(%struct.point79* noalias sret(%struct.point79) align 4 %0, %struct.point79* noundef byval(%struct.point79) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point79* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point79* %0 to i8* + %6 = bitcast %struct.point79* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo80(%struct.point80* noalias sret(%struct.point80) align 4 %0, %struct.point80* noundef byval(%struct.point80) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point80* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point80* %0 to i8* + %6 = bitcast %struct.point80* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo81(%struct.point81* noalias sret(%struct.point81) align 4 %0, %struct.point81* noundef byval(%struct.point81) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point81* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point81* %0 to i8* + %6 = bitcast %struct.point81* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo82(%struct.point82* noalias sret(%struct.point82) align 4 %0, %struct.point82* noundef byval(%struct.point82) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point82* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point82* %0 to i8* + %6 = bitcast %struct.point82* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo83(%struct.point83* noalias sret(%struct.point83) align 4 %0, %struct.point83* noundef byval(%struct.point83) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point83* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point83* %0 to i8* + %6 = bitcast %struct.point83* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo84(%struct.point84* noalias sret(%struct.point84) align 4 %0, %struct.point84* noundef byval(%struct.point84) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point84* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point84* %0 to i8* + %6 = bitcast %struct.point84* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo85(%struct.point85* noalias sret(%struct.point85) align 4 %0, %struct.point85* noundef byval(%struct.point85) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point85* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point85* %0 to i8* + %6 = bitcast %struct.point85* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo86(%struct.point86* noalias sret(%struct.point86) align 4 %0, %struct.point86* noundef byval(%struct.point86) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point86* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point86* %0 to i8* + %6 = bitcast %struct.point86* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo87(%struct.point87* noalias sret(%struct.point87) align 4 %0, %struct.point87* noundef byval(%struct.point87) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point87* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point87* %0 to i8* + %6 = bitcast %struct.point87* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo88(%struct.point88* noalias sret(%struct.point88) align 4 %0, %struct.point88* noundef byval(%struct.point88) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point88* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point88* %0 to i8* + %6 = bitcast %struct.point88* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo89(%struct.point89* noalias sret(%struct.point89) align 4 %0, %struct.point89* noundef byval(%struct.point89) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point89* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point89* %0 to i8* + %6 = bitcast %struct.point89* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo90(%struct.point90* noalias sret(%struct.point90) align 4 %0, %struct.point90* noundef byval(%struct.point90) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point90* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point90* %0 to i8* + %6 = bitcast %struct.point90* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo91(%struct.point91* noalias sret(%struct.point91) align 4 %0, %struct.point91* noundef byval(%struct.point91) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point91* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point91* %0 to i8* + %6 = bitcast %struct.point91* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo92(%struct.point92* noalias sret(%struct.point92) align 4 %0, %struct.point92* noundef byval(%struct.point92) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point92* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point92* %0 to i8* + %6 = bitcast %struct.point92* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo93(%struct.point93* noalias sret(%struct.point93) align 4 %0, %struct.point93* noundef byval(%struct.point93) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point93* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point93* %0 to i8* + %6 = bitcast %struct.point93* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo94(%struct.point94* noalias sret(%struct.point94) align 4 %0, %struct.point94* noundef byval(%struct.point94) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point94* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point94* %0 to i8* + %6 = bitcast %struct.point94* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo95(%struct.point95* noalias sret(%struct.point95) align 4 %0, %struct.point95* noundef byval(%struct.point95) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point95* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point95* %0 to i8* + %6 = bitcast %struct.point95* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo96(%struct.point96* noalias sret(%struct.point96) align 4 %0, %struct.point96* noundef byval(%struct.point96) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point96* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point96* %0 to i8* + %6 = bitcast %struct.point96* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo97(%struct.point97* noalias sret(%struct.point97) align 4 %0, %struct.point97* noundef byval(%struct.point97) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point97* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point97* %0 to i8* + %6 = bitcast %struct.point97* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo98(%struct.point98* noalias sret(%struct.point98) align 4 %0, %struct.point98* noundef byval(%struct.point98) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point98* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point98* %0 to i8* + %6 = bitcast %struct.point98* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo99(%struct.point99* noalias sret(%struct.point99) align 4 %0, %struct.point99* noundef byval(%struct.point99) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point99* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point99* %0 to i8* + %6 = bitcast %struct.point99* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo100(%struct.point100* noalias sret(%struct.point100) align 4 %0, %struct.point100* noundef byval(%struct.point100) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point100* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point100* %0 to i8* + %6 = bitcast %struct.point100* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo101(%struct.point101* noalias sret(%struct.point101) align 4 %0, %struct.point101* noundef byval(%struct.point101) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point101* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point101* %0 to i8* + %6 = bitcast %struct.point101* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo102(%struct.point102* noalias sret(%struct.point102) align 4 %0, %struct.point102* noundef byval(%struct.point102) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point102* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point102* %0 to i8* + %6 = bitcast %struct.point102* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo103(%struct.point103* noalias sret(%struct.point103) align 4 %0, %struct.point103* noundef byval(%struct.point103) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point103* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point103* %0 to i8* + %6 = bitcast %struct.point103* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo104(%struct.point104* noalias sret(%struct.point104) align 4 %0, %struct.point104* noundef byval(%struct.point104) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point104* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point104* %0 to i8* + %6 = bitcast %struct.point104* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo105(%struct.point105* noalias sret(%struct.point105) align 4 %0, %struct.point105* noundef byval(%struct.point105) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point105* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point105* %0 to i8* + %6 = bitcast %struct.point105* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo106(%struct.point106* noalias sret(%struct.point106) align 4 %0, %struct.point106* noundef byval(%struct.point106) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point106* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point106* %0 to i8* + %6 = bitcast %struct.point106* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo107(%struct.point107* noalias sret(%struct.point107) align 4 %0, %struct.point107* noundef byval(%struct.point107) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point107* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point107* %0 to i8* + %6 = bitcast %struct.point107* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo108(%struct.point108* noalias sret(%struct.point108) align 4 %0, %struct.point108* noundef byval(%struct.point108) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point108* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point108* %0 to i8* + %6 = bitcast %struct.point108* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo109(%struct.point109* noalias sret(%struct.point109) align 4 %0, %struct.point109* noundef byval(%struct.point109) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point109* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point109* %0 to i8* + %6 = bitcast %struct.point109* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo110(%struct.point110* noalias sret(%struct.point110) align 4 %0, %struct.point110* noundef byval(%struct.point110) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point110* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point110* %0 to i8* + %6 = bitcast %struct.point110* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo111(%struct.point111* noalias sret(%struct.point111) align 4 %0, %struct.point111* noundef byval(%struct.point111) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point111* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point111* %0 to i8* + %6 = bitcast %struct.point111* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo112(%struct.point112* noalias sret(%struct.point112) align 4 %0, %struct.point112* noundef byval(%struct.point112) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point112* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point112* %0 to i8* + %6 = bitcast %struct.point112* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo113(%struct.point113* noalias sret(%struct.point113) align 4 %0, %struct.point113* noundef byval(%struct.point113) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point113* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point113* %0 to i8* + %6 = bitcast %struct.point113* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo114(%struct.point114* noalias sret(%struct.point114) align 4 %0, %struct.point114* noundef byval(%struct.point114) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point114* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point114* %0 to i8* + %6 = bitcast %struct.point114* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo115(%struct.point115* noalias sret(%struct.point115) align 4 %0, %struct.point115* noundef byval(%struct.point115) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point115* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point115* %0 to i8* + %6 = bitcast %struct.point115* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo116(%struct.point116* noalias sret(%struct.point116) align 4 %0, %struct.point116* noundef byval(%struct.point116) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point116* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point116* %0 to i8* + %6 = bitcast %struct.point116* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo117(%struct.point117* noalias sret(%struct.point117) align 4 %0, %struct.point117* noundef byval(%struct.point117) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point117* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point117* %0 to i8* + %6 = bitcast %struct.point117* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo118(%struct.point118* noalias sret(%struct.point118) align 4 %0, %struct.point118* noundef byval(%struct.point118) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point118* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point118* %0 to i8* + %6 = bitcast %struct.point118* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo119(%struct.point119* noalias sret(%struct.point119) align 4 %0, %struct.point119* noundef byval(%struct.point119) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point119* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point119* %0 to i8* + %6 = bitcast %struct.point119* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo120(%struct.point120* noalias sret(%struct.point120) align 4 %0, %struct.point120* noundef byval(%struct.point120) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point120* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point120* %0 to i8* + %6 = bitcast %struct.point120* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo121(%struct.point121* noalias sret(%struct.point121) align 4 %0, %struct.point121* noundef byval(%struct.point121) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point121* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point121* %0 to i8* + %6 = bitcast %struct.point121* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo122(%struct.point122* noalias sret(%struct.point122) align 4 %0, %struct.point122* noundef byval(%struct.point122) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point122* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point122* %0 to i8* + %6 = bitcast %struct.point122* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo123(%struct.point123* noalias sret(%struct.point123) align 4 %0, %struct.point123* noundef byval(%struct.point123) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point123* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point123* %0 to i8* + %6 = bitcast %struct.point123* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo124(%struct.point124* noalias sret(%struct.point124) align 4 %0, %struct.point124* noundef byval(%struct.point124) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point124* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point124* %0 to i8* + %6 = bitcast %struct.point124* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo125(%struct.point125* noalias sret(%struct.point125) align 4 %0, %struct.point125* noundef byval(%struct.point125) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point125* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point125* %0 to i8* + %6 = bitcast %struct.point125* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo126(%struct.point126* noalias sret(%struct.point126) align 4 %0, %struct.point126* noundef byval(%struct.point126) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point126* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point126* %0 to i8* + %6 = bitcast %struct.point126* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo127(%struct.point127* noalias sret(%struct.point127) align 4 %0, %struct.point127* noundef byval(%struct.point127) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point127* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point127* %0 to i8* + %6 = bitcast %struct.point127* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo128(%struct.point128* noalias sret(%struct.point128) align 4 %0, %struct.point128* noundef byval(%struct.point128) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point128* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point128* %0 to i8* + %6 = bitcast %struct.point128* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo129(%struct.point129* noalias sret(%struct.point129) align 4 %0, %struct.point129* noundef byval(%struct.point129) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point129* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point129* %0 to i8* + %6 = bitcast %struct.point129* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo130(%struct.point130* noalias sret(%struct.point130) align 4 %0, %struct.point130* noundef byval(%struct.point130) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point130* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point130* %0 to i8* + %6 = bitcast %struct.point130* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo131(%struct.point131* noalias sret(%struct.point131) align 4 %0, %struct.point131* noundef byval(%struct.point131) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point131* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point131* %0 to i8* + %6 = bitcast %struct.point131* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo132(%struct.point132* noalias sret(%struct.point132) align 4 %0, %struct.point132* noundef byval(%struct.point132) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point132* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point132* %0 to i8* + %6 = bitcast %struct.point132* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo133(%struct.point133* noalias sret(%struct.point133) align 4 %0, %struct.point133* noundef byval(%struct.point133) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point133* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point133* %0 to i8* + %6 = bitcast %struct.point133* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo134(%struct.point134* noalias sret(%struct.point134) align 4 %0, %struct.point134* noundef byval(%struct.point134) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point134* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point134* %0 to i8* + %6 = bitcast %struct.point134* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo135(%struct.point135* noalias sret(%struct.point135) align 4 %0, %struct.point135* noundef byval(%struct.point135) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point135* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point135* %0 to i8* + %6 = bitcast %struct.point135* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo136(%struct.point136* noalias sret(%struct.point136) align 4 %0, %struct.point136* noundef byval(%struct.point136) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point136* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point136* %0 to i8* + %6 = bitcast %struct.point136* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo137(%struct.point137* noalias sret(%struct.point137) align 4 %0, %struct.point137* noundef byval(%struct.point137) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point137* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point137* %0 to i8* + %6 = bitcast %struct.point137* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo138(%struct.point138* noalias sret(%struct.point138) align 4 %0, %struct.point138* noundef byval(%struct.point138) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point138* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point138* %0 to i8* + %6 = bitcast %struct.point138* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef byval(%struct.point139) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point139* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef byval(%struct.point140) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point140* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef byval(%struct.point141) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point141* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef byval(%struct.point142) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point142* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo143(%struct.point143* noalias sret(%struct.point143) align 4 %0, %struct.point143* noundef byval(%struct.point143) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point143* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point143* %0 to i8* + %6 = bitcast %struct.point143* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef byval(%struct.point144) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point144* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef byval(%struct.point145) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point145* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef byval(%struct.point146) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point146* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef byval(%struct.point147) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point147* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo148(%struct.point148* noalias sret(%struct.point148) align 4 %0, %struct.point148* noundef byval(%struct.point148) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point148* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point148* %0 to i8* + %6 = bitcast %struct.point148* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo149(%struct.point149* noalias sret(%struct.point149) align 4 %0, %struct.point149* noundef byval(%struct.point149) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point149* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point149* %0 to i8* + %6 = bitcast %struct.point149* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo150(%struct.point150* noalias sret(%struct.point150) align 4 %0, %struct.point150* noundef byval(%struct.point150) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point150* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point150* %0 to i8* + %6 = bitcast %struct.point150* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo151(%struct.point151* noalias sret(%struct.point151) align 4 %0, %struct.point151* noundef byval(%struct.point151) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point151* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point151* %0 to i8* + %6 = bitcast %struct.point151* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo152(%struct.point152* noalias sret(%struct.point152) align 4 %0, %struct.point152* noundef byval(%struct.point152) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point152* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point152* %0 to i8* + %6 = bitcast %struct.point152* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo153(%struct.point153* noalias sret(%struct.point153) align 4 %0, %struct.point153* noundef byval(%struct.point153) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point153* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point153* %0 to i8* + %6 = bitcast %struct.point153* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo154(%struct.point154* noalias sret(%struct.point154) align 4 %0, %struct.point154* noundef byval(%struct.point154) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point154* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point154* %0 to i8* + %6 = bitcast %struct.point154* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo155(%struct.point155* noalias sret(%struct.point155) align 4 %0, %struct.point155* noundef byval(%struct.point155) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point155* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point155* %0 to i8* + %6 = bitcast %struct.point155* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo156(%struct.point156* noalias sret(%struct.point156) align 4 %0, %struct.point156* noundef byval(%struct.point156) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point156* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point156* %0 to i8* + %6 = bitcast %struct.point156* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo157(%struct.point157* noalias sret(%struct.point157) align 4 %0, %struct.point157* noundef byval(%struct.point157) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point157* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point157* %0 to i8* + %6 = bitcast %struct.point157* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo158(%struct.point158* noalias sret(%struct.point158) align 4 %0, %struct.point158* noundef byval(%struct.point158) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point158* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point158* %0 to i8* + %6 = bitcast %struct.point158* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo159(%struct.point159* noalias sret(%struct.point159) align 4 %0, %struct.point159* noundef byval(%struct.point159) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point159* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point159* %0 to i8* + %6 = bitcast %struct.point159* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef byval(%struct.point160) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point160* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef byval(%struct.point161) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point161* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef byval(%struct.point162) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point162* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef byval(%struct.point163) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point163* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo164(%struct.point164* noalias sret(%struct.point164) align 4 %0, %struct.point164* noundef byval(%struct.point164) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point164* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point164* %0 to i8* + %6 = bitcast %struct.point164* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef byval(%struct.point165) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point165* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef byval(%struct.point166) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point166* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef byval(%struct.point167) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point167* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef byval(%struct.point168) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point168* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo169(%struct.point169* noalias sret(%struct.point169) align 4 %0, %struct.point169* noundef byval(%struct.point169) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point169* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point169* %0 to i8* + %6 = bitcast %struct.point169* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo170(%struct.point170* noalias sret(%struct.point170) align 4 %0, %struct.point170* noundef byval(%struct.point170) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point170* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point170* %0 to i8* + %6 = bitcast %struct.point170* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo171(%struct.point171* noalias sret(%struct.point171) align 4 %0, %struct.point171* noundef byval(%struct.point171) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point171* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point171* %0 to i8* + %6 = bitcast %struct.point171* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo172(%struct.point172* noalias sret(%struct.point172) align 4 %0, %struct.point172* noundef byval(%struct.point172) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point172* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point172* %0 to i8* + %6 = bitcast %struct.point172* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef byval(%struct.point173) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point173* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef byval(%struct.point174) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point174* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo175(%struct.point175* noalias sret(%struct.point175) align 4 %0, %struct.point175* noundef byval(%struct.point175) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point175* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point175* %0 to i8* + %6 = bitcast %struct.point175* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo176(%struct.point176* noalias sret(%struct.point176) align 4 %0, %struct.point176* noundef byval(%struct.point176) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point176* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point176* %0 to i8* + %6 = bitcast %struct.point176* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo177(%struct.point177* noalias sret(%struct.point177) align 4 %0, %struct.point177* noundef byval(%struct.point177) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point177* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point177* %0 to i8* + %6 = bitcast %struct.point177* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef byval(%struct.point178) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point178* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef byval(%struct.point179) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point179* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo180(%struct.point180* noalias sret(%struct.point180) align 4 %0, %struct.point180* noundef byval(%struct.point180) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point180* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point180* %0 to i8* + %6 = bitcast %struct.point180* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef byval(%struct.point181) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point181* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef byval(%struct.point182) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point182* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef byval(%struct.point183) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point183* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef byval(%struct.point184) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point184* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo185(%struct.point185* noalias sret(%struct.point185) align 4 %0, %struct.point185* noundef byval(%struct.point185) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point185* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point185* %0 to i8* + %6 = bitcast %struct.point185* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef byval(%struct.point186) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point186* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef byval(%struct.point187) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point187* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef byval(%struct.point188) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point188* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef byval(%struct.point189) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point189* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo190(%struct.point190* noalias sret(%struct.point190) align 4 %0, %struct.point190* noundef byval(%struct.point190) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point190* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point190* %0 to i8* + %6 = bitcast %struct.point190* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo191(%struct.point191* noalias sret(%struct.point191) align 4 %0, %struct.point191* noundef byval(%struct.point191) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point191* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point191* %0 to i8* + %6 = bitcast %struct.point191* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo192(%struct.point192* noalias sret(%struct.point192) align 4 %0, %struct.point192* noundef byval(%struct.point192) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point192* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point192* %0 to i8* + %6 = bitcast %struct.point192* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo193(%struct.point193* noalias sret(%struct.point193) align 4 %0, %struct.point193* noundef byval(%struct.point193) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point193* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point193* %0 to i8* + %6 = bitcast %struct.point193* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef byval(%struct.point194) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point194* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef byval(%struct.point195) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point195* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo196(%struct.point196* noalias sret(%struct.point196) align 4 %0, %struct.point196* noundef byval(%struct.point196) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point196* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point196* %0 to i8* + %6 = bitcast %struct.point196* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo197(%struct.point197* noalias sret(%struct.point197) align 4 %0, %struct.point197* noundef byval(%struct.point197) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point197* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point197* %0 to i8* + %6 = bitcast %struct.point197* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo198(%struct.point198* noalias sret(%struct.point198) align 4 %0, %struct.point198* noundef byval(%struct.point198) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point198* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point198* %0 to i8* + %6 = bitcast %struct.point198* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef byval(%struct.point199) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point199* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef byval(%struct.point200) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point200* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo201(%struct.point201* noalias sret(%struct.point201) align 4 %0, %struct.point201* noundef byval(%struct.point201) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point201* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point201* %0 to i8* + %6 = bitcast %struct.point201* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef byval(%struct.point202) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point202* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef byval(%struct.point203) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point203* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef byval(%struct.point204) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point204* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef byval(%struct.point205) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point205* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo206(%struct.point206* noalias sret(%struct.point206) align 4 %0, %struct.point206* noundef byval(%struct.point206) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point206* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point206* %0 to i8* + %6 = bitcast %struct.point206* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef byval(%struct.point207) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point207* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef byval(%struct.point208) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point208* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef byval(%struct.point209) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point209* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef byval(%struct.point210) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point210* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo211(%struct.point211* noalias sret(%struct.point211) align 4 %0, %struct.point211* noundef byval(%struct.point211) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point211* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point211* %0 to i8* + %6 = bitcast %struct.point211* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo212(%struct.point212* noalias sret(%struct.point212) align 4 %0, %struct.point212* noundef byval(%struct.point212) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point212* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point212* %0 to i8* + %6 = bitcast %struct.point212* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo213(%struct.point213* noalias sret(%struct.point213) align 4 %0, %struct.point213* noundef byval(%struct.point213) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point213* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point213* %0 to i8* + %6 = bitcast %struct.point213* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo214(%struct.point214* noalias sret(%struct.point214) align 4 %0, %struct.point214* noundef byval(%struct.point214) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point214* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point214* %0 to i8* + %6 = bitcast %struct.point214* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo215(%struct.point215* noalias sret(%struct.point215) align 4 %0, %struct.point215* noundef byval(%struct.point215) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point215* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point215* %0 to i8* + %6 = bitcast %struct.point215* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo216(%struct.point216* noalias sret(%struct.point216) align 4 %0, %struct.point216* noundef byval(%struct.point216) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point216* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point216* %0 to i8* + %6 = bitcast %struct.point216* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo217(%struct.point217* noalias sret(%struct.point217) align 4 %0, %struct.point217* noundef byval(%struct.point217) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point217* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point217* %0 to i8* + %6 = bitcast %struct.point217* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo218(%struct.point218* noalias sret(%struct.point218) align 4 %0, %struct.point218* noundef byval(%struct.point218) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point218* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point218* %0 to i8* + %6 = bitcast %struct.point218* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo219(%struct.point219* noalias sret(%struct.point219) align 4 %0, %struct.point219* noundef byval(%struct.point219) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point219* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point219* %0 to i8* + %6 = bitcast %struct.point219* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo220(%struct.point220* noalias sret(%struct.point220) align 4 %0, %struct.point220* noundef byval(%struct.point220) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point220* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point220* %0 to i8* + %6 = bitcast %struct.point220* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo221(%struct.point221* noalias sret(%struct.point221) align 4 %0, %struct.point221* noundef byval(%struct.point221) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point221* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point221* %0 to i8* + %6 = bitcast %struct.point221* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo222(%struct.point222* noalias sret(%struct.point222) align 4 %0, %struct.point222* noundef byval(%struct.point222) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point222* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point222* %0 to i8* + %6 = bitcast %struct.point222* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef byval(%struct.point223) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point223* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef byval(%struct.point224) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point224* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef byval(%struct.point225) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point225* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef byval(%struct.point226) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point226* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo227(%struct.point227* noalias sret(%struct.point227) align 4 %0, %struct.point227* noundef byval(%struct.point227) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point227* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point227* %0 to i8* + %6 = bitcast %struct.point227* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef byval(%struct.point228) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point228* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef byval(%struct.point229) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point229* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef byval(%struct.point230) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point230* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef byval(%struct.point231) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point231* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo232(%struct.point232* noalias sret(%struct.point232) align 4 %0, %struct.point232* noundef byval(%struct.point232) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point232* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point232* %0 to i8* + %6 = bitcast %struct.point232* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo233(%struct.point233* noalias sret(%struct.point233) align 4 %0, %struct.point233* noundef byval(%struct.point233) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point233* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point233* %0 to i8* + %6 = bitcast %struct.point233* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo234(%struct.point234* noalias sret(%struct.point234) align 4 %0, %struct.point234* noundef byval(%struct.point234) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point234* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point234* %0 to i8* + %6 = bitcast %struct.point234* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo235(%struct.point235* noalias sret(%struct.point235) align 4 %0, %struct.point235* noundef byval(%struct.point235) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point235* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point235* %0 to i8* + %6 = bitcast %struct.point235* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo236(%struct.point236* noalias sret(%struct.point236) align 4 %0, %struct.point236* noundef byval(%struct.point236) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point236* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point236* %0 to i8* + %6 = bitcast %struct.point236* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo237(%struct.point237* noalias sret(%struct.point237) align 4 %0, %struct.point237* noundef byval(%struct.point237) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point237* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point237* %0 to i8* + %6 = bitcast %struct.point237* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo238(%struct.point238* noalias sret(%struct.point238) align 4 %0, %struct.point238* noundef byval(%struct.point238) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point238* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point238* %0 to i8* + %6 = bitcast %struct.point238* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo239(%struct.point239* noalias sret(%struct.point239) align 4 %0, %struct.point239* noundef byval(%struct.point239) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point239* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point239* %0 to i8* + %6 = bitcast %struct.point239* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo240(%struct.point240* noalias sret(%struct.point240) align 4 %0, %struct.point240* noundef byval(%struct.point240) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point240* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point240* %0 to i8* + %6 = bitcast %struct.point240* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo241(%struct.point241* noalias sret(%struct.point241) align 4 %0, %struct.point241* noundef byval(%struct.point241) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point241* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point241* %0 to i8* + %6 = bitcast %struct.point241* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo242(%struct.point242* noalias sret(%struct.point242) align 4 %0, %struct.point242* noundef byval(%struct.point242) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point242* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point242* %0 to i8* + %6 = bitcast %struct.point242* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo243(%struct.point243* noalias sret(%struct.point243) align 4 %0, %struct.point243* noundef byval(%struct.point243) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point243* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point243* %0 to i8* + %6 = bitcast %struct.point243* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef byval(%struct.point244) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point244* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef byval(%struct.point245) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point245* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef byval(%struct.point246) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point246* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef byval(%struct.point247) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point247* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo248(%struct.point248* noalias sret(%struct.point248) align 4 %0, %struct.point248* noundef byval(%struct.point248) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point248* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point248* %0 to i8* + %6 = bitcast %struct.point248* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef byval(%struct.point249) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point249* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef byval(%struct.point250) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point250* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef byval(%struct.point251) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point251* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef byval(%struct.point252) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point252* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo253(%struct.point253* noalias sret(%struct.point253) align 4 %0, %struct.point253* noundef byval(%struct.point253) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point253* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point253* %0 to i8* + %6 = bitcast %struct.point253* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo254(%struct.point254* noalias sret(%struct.point254) align 4 %0, %struct.point254* noundef byval(%struct.point254) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point254* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point254* %0 to i8* + %6 = bitcast %struct.point254* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo255(%struct.point255* noalias sret(%struct.point255) align 4 %0, %struct.point255* noundef byval(%struct.point255) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point255* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point255* %0 to i8* + %6 = bitcast %struct.point255* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo256(%struct.point256* noalias sret(%struct.point256) align 4 %0, %struct.point256* noundef byval(%struct.point256) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point256* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point256* %0 to i8* + %6 = bitcast %struct.point256* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef byval(%struct.point257) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point257* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef byval(%struct.point258) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point258* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo259(%struct.point259* noalias sret(%struct.point259) align 4 %0, %struct.point259* noundef byval(%struct.point259) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point259* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point259* %0 to i8* + %6 = bitcast %struct.point259* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo260(%struct.point260* noalias sret(%struct.point260) align 4 %0, %struct.point260* noundef byval(%struct.point260) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point260* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point260* %0 to i8* + %6 = bitcast %struct.point260* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo261(%struct.point261* noalias sret(%struct.point261) align 4 %0, %struct.point261* noundef byval(%struct.point261) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point261* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point261* %0 to i8* + %6 = bitcast %struct.point261* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef byval(%struct.point262) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point262* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef byval(%struct.point263) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point263* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo264(%struct.point264* noalias sret(%struct.point264) align 4 %0, %struct.point264* noundef byval(%struct.point264) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point264* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point264* %0 to i8* + %6 = bitcast %struct.point264* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef byval(%struct.point265) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point265* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef byval(%struct.point266) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point266* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef byval(%struct.point267) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point267* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef byval(%struct.point268) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point268* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo269(%struct.point269* noalias sret(%struct.point269) align 4 %0, %struct.point269* noundef byval(%struct.point269) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point269* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point269* %0 to i8* + %6 = bitcast %struct.point269* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef byval(%struct.point270) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point270* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef byval(%struct.point271) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point271* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef byval(%struct.point272) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point272* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef byval(%struct.point273) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point273* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo274(%struct.point274* noalias sret(%struct.point274) align 4 %0, %struct.point274* noundef byval(%struct.point274) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point274* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point274* %0 to i8* + %6 = bitcast %struct.point274* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo275(%struct.point275* noalias sret(%struct.point275) align 4 %0, %struct.point275* noundef byval(%struct.point275) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point275* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point275* %0 to i8* + %6 = bitcast %struct.point275* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo276(%struct.point276* noalias sret(%struct.point276) align 4 %0, %struct.point276* noundef byval(%struct.point276) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point276* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point276* %0 to i8* + %6 = bitcast %struct.point276* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo277(%struct.point277* noalias sret(%struct.point277) align 4 %0, %struct.point277* noundef byval(%struct.point277) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point277* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point277* %0 to i8* + %6 = bitcast %struct.point277* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef byval(%struct.point278) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point278* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef byval(%struct.point279) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point279* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo280(%struct.point280* noalias sret(%struct.point280) align 4 %0, %struct.point280* noundef byval(%struct.point280) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point280* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point280* %0 to i8* + %6 = bitcast %struct.point280* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo281(%struct.point281* noalias sret(%struct.point281) align 4 %0, %struct.point281* noundef byval(%struct.point281) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point281* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point281* %0 to i8* + %6 = bitcast %struct.point281* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo282(%struct.point282* noalias sret(%struct.point282) align 4 %0, %struct.point282* noundef byval(%struct.point282) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point282* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point282* %0 to i8* + %6 = bitcast %struct.point282* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef byval(%struct.point283) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point283* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef byval(%struct.point284) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point284* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo285(%struct.point285* noalias sret(%struct.point285) align 4 %0, %struct.point285* noundef byval(%struct.point285) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point285* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point285* %0 to i8* + %6 = bitcast %struct.point285* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef byval(%struct.point286) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point286* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef byval(%struct.point287) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point287* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef byval(%struct.point288) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point288* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef byval(%struct.point289) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point289* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo290(%struct.point290* noalias sret(%struct.point290) align 4 %0, %struct.point290* noundef byval(%struct.point290) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point290* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point290* %0 to i8* + %6 = bitcast %struct.point290* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef byval(%struct.point291) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point291* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef byval(%struct.point292) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point292* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef byval(%struct.point293) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point293* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef byval(%struct.point294) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point294* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo295(%struct.point295* noalias sret(%struct.point295) align 2 %0, %struct.point295* noundef byval(%struct.point295) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point295* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point295* %0 to i8* + %6 = bitcast %struct.point295* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo296(%struct.point296* noalias sret(%struct.point296) align 2 %0, %struct.point296* noundef byval(%struct.point296) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point296* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point296* %0 to i8* + %6 = bitcast %struct.point296* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo297(%struct.point297* noalias sret(%struct.point297) align 2 %0, %struct.point297* noundef byval(%struct.point297) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point297* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point297* %0 to i8* + %6 = bitcast %struct.point297* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo298(%struct.point298* noalias sret(%struct.point298) align 2 %0, %struct.point298* noundef byval(%struct.point298) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point298* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point298* %0 to i8* + %6 = bitcast %struct.point298* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo299(%struct.point299* noalias sret(%struct.point299) align 4 %0, %struct.point299* noundef byval(%struct.point299) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point299* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point299* %0 to i8* + %6 = bitcast %struct.point299* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo300(%struct.point300* noalias sret(%struct.point300) align 4 %0, %struct.point300* noundef byval(%struct.point300) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point300* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point300* %0 to i8* + %6 = bitcast %struct.point300* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo301(%struct.point301* noalias sret(%struct.point301) align 2 %0, %struct.point301* noundef byval(%struct.point301) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point301* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point301* %0 to i8* + %6 = bitcast %struct.point301* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo302(%struct.point302* noalias sret(%struct.point302) align 2 %0, %struct.point302* noundef byval(%struct.point302) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point302* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point302* %0 to i8* + %6 = bitcast %struct.point302* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo303(%struct.point303* noalias sret(%struct.point303) align 2 %0, %struct.point303* noundef byval(%struct.point303) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point303* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point303* %0 to i8* + %6 = bitcast %struct.point303* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo304(%struct.point304* noalias sret(%struct.point304) align 4 %0, %struct.point304* noundef byval(%struct.point304) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point304* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point304* %0 to i8* + %6 = bitcast %struct.point304* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo305(%struct.point305* noalias sret(%struct.point305) align 4 %0, %struct.point305* noundef byval(%struct.point305) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point305* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point305* %0 to i8* + %6 = bitcast %struct.point305* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo306(%struct.point306* noalias sret(%struct.point306) align 4 %0, %struct.point306* noundef byval(%struct.point306) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point306* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point306* %0 to i8* + %6 = bitcast %struct.point306* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo307(%struct.point307* noalias sret(%struct.point307) align 4 %0, %struct.point307* noundef byval(%struct.point307) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point307* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point307* %0 to i8* + %6 = bitcast %struct.point307* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo308(%struct.point308* noalias sret(%struct.point308) align 4 %0, %struct.point308* noundef byval(%struct.point308) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point308* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point308* %0 to i8* + %6 = bitcast %struct.point308* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo309(%struct.point309* noalias sret(%struct.point309) align 4 %0, %struct.point309* noundef byval(%struct.point309) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point309* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point309* %0 to i8* + %6 = bitcast %struct.point309* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo310(%struct.point310* noalias sret(%struct.point310) align 4 %0, %struct.point310* noundef byval(%struct.point310) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point310* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point310* %0 to i8* + %6 = bitcast %struct.point310* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo311(%struct.point311* noalias sret(%struct.point311) align 4 %0, %struct.point311* noundef byval(%struct.point311) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point311* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point311* %0 to i8* + %6 = bitcast %struct.point311* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo312(%struct.point312* noalias sret(%struct.point312) align 4 %0, %struct.point312* noundef byval(%struct.point312) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point312* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point312* %0 to i8* + %6 = bitcast %struct.point312* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo313(%struct.point313* noalias sret(%struct.point313) align 4 %0, %struct.point313* noundef byval(%struct.point313) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point313* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point313* %0 to i8* + %6 = bitcast %struct.point313* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo314(%struct.point314* noalias sret(%struct.point314) align 4 %0, %struct.point314* noundef byval(%struct.point314) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point314* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point314* %0 to i8* + %6 = bitcast %struct.point314* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo315(%struct.point315* noalias sret(%struct.point315) align 4 %0, %struct.point315* noundef byval(%struct.point315) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point315* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point315* %0 to i8* + %6 = bitcast %struct.point315* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo316(%struct.point316* noalias sret(%struct.point316) align 2 %0, %struct.point316* noundef byval(%struct.point316) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point316* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point316* %0 to i8* + %6 = bitcast %struct.point316* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo317(%struct.point317* noalias sret(%struct.point317) align 2 %0, %struct.point317* noundef byval(%struct.point317) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point317* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point317* %0 to i8* + %6 = bitcast %struct.point317* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo318(%struct.point318* noalias sret(%struct.point318) align 2 %0, %struct.point318* noundef byval(%struct.point318) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point318* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point318* %0 to i8* + %6 = bitcast %struct.point318* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo319(%struct.point319* noalias sret(%struct.point319) align 2 %0, %struct.point319* noundef byval(%struct.point319) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point319* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point319* %0 to i8* + %6 = bitcast %struct.point319* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo320(%struct.point320* noalias sret(%struct.point320) align 4 %0, %struct.point320* noundef byval(%struct.point320) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point320* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point320* %0 to i8* + %6 = bitcast %struct.point320* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo321(%struct.point321* noalias sret(%struct.point321) align 4 %0, %struct.point321* noundef byval(%struct.point321) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point321* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point321* %0 to i8* + %6 = bitcast %struct.point321* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo322(%struct.point322* noalias sret(%struct.point322) align 2 %0, %struct.point322* noundef byval(%struct.point322) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point322* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point322* %0 to i8* + %6 = bitcast %struct.point322* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo323(%struct.point323* noalias sret(%struct.point323) align 2 %0, %struct.point323* noundef byval(%struct.point323) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point323* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point323* %0 to i8* + %6 = bitcast %struct.point323* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo324(%struct.point324* noalias sret(%struct.point324) align 2 %0, %struct.point324* noundef byval(%struct.point324) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point324* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point324* %0 to i8* + %6 = bitcast %struct.point324* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 4 %6, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo325(%struct.point325* noalias sret(%struct.point325) align 4 %0, %struct.point325* noundef byval(%struct.point325) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point325* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point325* %0 to i8* + %6 = bitcast %struct.point325* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo326(%struct.point326* noalias sret(%struct.point326) align 4 %0, %struct.point326* noundef byval(%struct.point326) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point326* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point326* %0 to i8* + %6 = bitcast %struct.point326* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo327(%struct.point327* noalias sret(%struct.point327) align 4 %0, %struct.point327* noundef byval(%struct.point327) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point327* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point327* %0 to i8* + %6 = bitcast %struct.point327* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo328(%struct.point328* noalias sret(%struct.point328) align 4 %0, %struct.point328* noundef byval(%struct.point328) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point328* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point328* %0 to i8* + %6 = bitcast %struct.point328* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo329(%struct.point329* noalias sret(%struct.point329) align 4 %0, %struct.point329* noundef byval(%struct.point329) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point329* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point329* %0 to i8* + %6 = bitcast %struct.point329* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo330(%struct.point330* noalias sret(%struct.point330) align 4 %0, %struct.point330* noundef byval(%struct.point330) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point330* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point330* %0 to i8* + %6 = bitcast %struct.point330* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo331(%struct.point331* noalias sret(%struct.point331) align 4 %0, %struct.point331* noundef byval(%struct.point331) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point331* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point331* %0 to i8* + %6 = bitcast %struct.point331* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo332(%struct.point332* noalias sret(%struct.point332) align 4 %0, %struct.point332* noundef byval(%struct.point332) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point332* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point332* %0 to i8* + %6 = bitcast %struct.point332* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo333(%struct.point333* noalias sret(%struct.point333) align 4 %0, %struct.point333* noundef byval(%struct.point333) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point333* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point333* %0 to i8* + %6 = bitcast %struct.point333* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo334(%struct.point334* noalias sret(%struct.point334) align 4 %0, %struct.point334* noundef byval(%struct.point334) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point334* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point334* %0 to i8* + %6 = bitcast %struct.point334* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo335(%struct.point335* noalias sret(%struct.point335) align 4 %0, %struct.point335* noundef byval(%struct.point335) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point335* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point335* %0 to i8* + %6 = bitcast %struct.point335* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo336(%struct.point336* noalias sret(%struct.point336) align 4 %0, %struct.point336* noundef byval(%struct.point336) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point336* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point336* %0 to i8* + %6 = bitcast %struct.point336* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo337(%struct.point337* noalias sret(%struct.point337) align 4 %0, %struct.point337* noundef byval(%struct.point337) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point337* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point337* %0 to i8* + %6 = bitcast %struct.point337* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo338(%struct.point338* noalias sret(%struct.point338) align 4 %0, %struct.point338* noundef byval(%struct.point338) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point338* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point338* %0 to i8* + %6 = bitcast %struct.point338* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo339(%struct.point339* noalias sret(%struct.point339) align 4 %0, %struct.point339* noundef byval(%struct.point339) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point339* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point339* %0 to i8* + %6 = bitcast %struct.point339* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo340(%struct.point340* noalias sret(%struct.point340) align 4 %0, %struct.point340* noundef byval(%struct.point340) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point340* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point340* %0 to i8* + %6 = bitcast %struct.point340* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo341(%struct.point341* noalias sret(%struct.point341) align 4 %0, %struct.point341* noundef byval(%struct.point341) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point341* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point341* %0 to i8* + %6 = bitcast %struct.point341* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo342(%struct.point342* noalias sret(%struct.point342) align 4 %0, %struct.point342* noundef byval(%struct.point342) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point342* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point342* %0 to i8* + %6 = bitcast %struct.point342* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo343(%struct.point343* noalias sret(%struct.point343) align 4 %0, %struct.point343* noundef byval(%struct.point343) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point343* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point343* %0 to i8* + %6 = bitcast %struct.point343* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo344(%struct.point344* noalias sret(%struct.point344) align 4 %0, %struct.point344* noundef byval(%struct.point344) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point344* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point344* %0 to i8* + %6 = bitcast %struct.point344* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo345(%struct.point345* noalias sret(%struct.point345) align 4 %0, %struct.point345* noundef byval(%struct.point345) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point345* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point345* %0 to i8* + %6 = bitcast %struct.point345* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo346(%struct.point346* noalias sret(%struct.point346) align 4 %0, %struct.point346* noundef byval(%struct.point346) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point346* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point346* %0 to i8* + %6 = bitcast %struct.point346* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo347(%struct.point347* noalias sret(%struct.point347) align 4 %0, %struct.point347* noundef byval(%struct.point347) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point347* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point347* %0 to i8* + %6 = bitcast %struct.point347* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo348(%struct.point348* noalias sret(%struct.point348) align 4 %0, %struct.point348* noundef byval(%struct.point348) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point348* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point348* %0 to i8* + %6 = bitcast %struct.point348* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo349(%struct.point349* noalias sret(%struct.point349) align 4 %0, %struct.point349* noundef byval(%struct.point349) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point349* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point349* %0 to i8* + %6 = bitcast %struct.point349* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo350(%struct.point350* noalias sret(%struct.point350) align 4 %0, %struct.point350* noundef byval(%struct.point350) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point350* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point350* %0 to i8* + %6 = bitcast %struct.point350* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo351(%struct.point351* noalias sret(%struct.point351) align 4 %0, %struct.point351* noundef byval(%struct.point351) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point351* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point351* %0 to i8* + %6 = bitcast %struct.point351* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo352(%struct.point352* noalias sret(%struct.point352) align 4 %0, %struct.point352* noundef byval(%struct.point352) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point352* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point352* %0 to i8* + %6 = bitcast %struct.point352* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo353(%struct.point353* noalias sret(%struct.point353) align 4 %0, %struct.point353* noundef byval(%struct.point353) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point353* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point353* %0 to i8* + %6 = bitcast %struct.point353* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo354(%struct.point354* noalias sret(%struct.point354) align 4 %0, %struct.point354* noundef byval(%struct.point354) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point354* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point354* %0 to i8* + %6 = bitcast %struct.point354* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo355(%struct.point355* noalias sret(%struct.point355) align 4 %0, %struct.point355* noundef byval(%struct.point355) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point355* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point355* %0 to i8* + %6 = bitcast %struct.point355* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo356(%struct.point356* noalias sret(%struct.point356) align 4 %0, %struct.point356* noundef byval(%struct.point356) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point356* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point356* %0 to i8* + %6 = bitcast %struct.point356* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo357(%struct.point357* noalias sret(%struct.point357) align 4 %0, %struct.point357* noundef byval(%struct.point357) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point357* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point357* %0 to i8* + %6 = bitcast %struct.point357* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo358(%struct.point358* noalias sret(%struct.point358) align 4 %0, %struct.point358* noundef byval(%struct.point358) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point358* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point358* %0 to i8* + %6 = bitcast %struct.point358* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo359(%struct.point359* noalias sret(%struct.point359) align 4 %0, %struct.point359* noundef byval(%struct.point359) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point359* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point359* %0 to i8* + %6 = bitcast %struct.point359* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo360(%struct.point360* noalias sret(%struct.point360) align 4 %0, %struct.point360* noundef byval(%struct.point360) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point360* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point360* %0 to i8* + %6 = bitcast %struct.point360* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo361(%struct.point361* noalias sret(%struct.point361) align 4 %0, %struct.point361* noundef byval(%struct.point361) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point361* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point361* %0 to i8* + %6 = bitcast %struct.point361* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo362(%struct.point362* noalias sret(%struct.point362) align 4 %0, %struct.point362* noundef byval(%struct.point362) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point362* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point362* %0 to i8* + %6 = bitcast %struct.point362* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo363(%struct.point363* noalias sret(%struct.point363) align 4 %0, %struct.point363* noundef byval(%struct.point363) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point363* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point363* %0 to i8* + %6 = bitcast %struct.point363* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo364(%struct.point364* noalias sret(%struct.point364) align 4 %0, %struct.point364* noundef byval(%struct.point364) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point364* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point364* %0 to i8* + %6 = bitcast %struct.point364* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo365(%struct.point365* noalias sret(%struct.point365) align 4 %0, %struct.point365* noundef byval(%struct.point365) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point365* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point365* %0 to i8* + %6 = bitcast %struct.point365* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo366(%struct.point366* noalias sret(%struct.point366) align 4 %0, %struct.point366* noundef byval(%struct.point366) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point366* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point366* %0 to i8* + %6 = bitcast %struct.point366* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo367(%struct.point367* noalias sret(%struct.point367) align 4 %0, %struct.point367* noundef byval(%struct.point367) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point367* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point367* %0 to i8* + %6 = bitcast %struct.point367* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo368(%struct.point368* noalias sret(%struct.point368) align 4 %0, %struct.point368* noundef byval(%struct.point368) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point368* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point368* %0 to i8* + %6 = bitcast %struct.point368* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo369(%struct.point369* noalias sret(%struct.point369) align 4 %0, %struct.point369* noundef byval(%struct.point369) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point369* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point369* %0 to i8* + %6 = bitcast %struct.point369* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo370(%struct.point370* noalias sret(%struct.point370) align 4 %0, %struct.point370* noundef byval(%struct.point370) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point370* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point370* %0 to i8* + %6 = bitcast %struct.point370* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo371(%struct.point371* noalias sret(%struct.point371) align 4 %0, %struct.point371* noundef byval(%struct.point371) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point371* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point371* %0 to i8* + %6 = bitcast %struct.point371* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo372(%struct.point372* noalias sret(%struct.point372) align 4 %0, %struct.point372* noundef byval(%struct.point372) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point372* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point372* %0 to i8* + %6 = bitcast %struct.point372* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo373(%struct.point373* noalias sret(%struct.point373) align 4 %0, %struct.point373* noundef byval(%struct.point373) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point373* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point373* %0 to i8* + %6 = bitcast %struct.point373* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo374(%struct.point374* noalias sret(%struct.point374) align 4 %0, %struct.point374* noundef byval(%struct.point374) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point374* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point374* %0 to i8* + %6 = bitcast %struct.point374* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo375(%struct.point375* noalias sret(%struct.point375) align 4 %0, %struct.point375* noundef byval(%struct.point375) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point375* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point375* %0 to i8* + %6 = bitcast %struct.point375* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo376(%struct.point376* noalias sret(%struct.point376) align 4 %0, %struct.point376* noundef byval(%struct.point376) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point376* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point376* %0 to i8* + %6 = bitcast %struct.point376* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo377(%struct.point377* noalias sret(%struct.point377) align 4 %0, %struct.point377* noundef byval(%struct.point377) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point377* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point377* %0 to i8* + %6 = bitcast %struct.point377* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo378(%struct.point378* noalias sret(%struct.point378) align 4 %0, %struct.point378* noundef byval(%struct.point378) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point378* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point378* %0 to i8* + %6 = bitcast %struct.point378* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo379(%struct.point379* noalias sret(%struct.point379) align 4 %0, %struct.point379* noundef byval(%struct.point379) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point379* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point379* %0 to i8* + %6 = bitcast %struct.point379* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo380(%struct.point380* noalias sret(%struct.point380) align 4 %0, %struct.point380* noundef byval(%struct.point380) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point380* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point380* %0 to i8* + %6 = bitcast %struct.point380* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo381(%struct.point381* noalias sret(%struct.point381) align 4 %0, %struct.point381* noundef byval(%struct.point381) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point381* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point381* %0 to i8* + %6 = bitcast %struct.point381* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo382(%struct.point382* noalias sret(%struct.point382) align 4 %0, %struct.point382* noundef byval(%struct.point382) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point382* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point382* %0 to i8* + %6 = bitcast %struct.point382* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo383(%struct.point383* noalias sret(%struct.point383) align 4 %0, %struct.point383* noundef byval(%struct.point383) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point383* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point383* %0 to i8* + %6 = bitcast %struct.point383* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo384(%struct.point384* noalias sret(%struct.point384) align 4 %0, %struct.point384* noundef byval(%struct.point384) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point384* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point384* %0 to i8* + %6 = bitcast %struct.point384* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo385(%struct.point385* noalias sret(%struct.point385) align 4 %0, %struct.point385* noundef byval(%struct.point385) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point385* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point385* %0 to i8* + %6 = bitcast %struct.point385* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo386(%struct.point386* noalias sret(%struct.point386) align 4 %0, %struct.point386* noundef byval(%struct.point386) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point386* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point386* %0 to i8* + %6 = bitcast %struct.point386* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo387(%struct.point387* noalias sret(%struct.point387) align 4 %0, %struct.point387* noundef byval(%struct.point387) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point387* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point387* %0 to i8* + %6 = bitcast %struct.point387* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo388(%struct.point388* noalias sret(%struct.point388) align 4 %0, %struct.point388* noundef byval(%struct.point388) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point388* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point388* %0 to i8* + %6 = bitcast %struct.point388* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo389(%struct.point389* noalias sret(%struct.point389) align 4 %0, %struct.point389* noundef byval(%struct.point389) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point389* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point389* %0 to i8* + %6 = bitcast %struct.point389* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo390(%struct.point390* noalias sret(%struct.point390) align 4 %0, %struct.point390* noundef byval(%struct.point390) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point390* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point390* %0 to i8* + %6 = bitcast %struct.point390* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef byval(%struct.point391) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point391* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef byval(%struct.point392) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point392* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef byval(%struct.point393) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point393* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef byval(%struct.point394) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point394* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo395(%struct.point395* noalias sret(%struct.point395) align 4 %0, %struct.point395* noundef byval(%struct.point395) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point395* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point395* %0 to i8* + %6 = bitcast %struct.point395* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef byval(%struct.point396) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point396* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef byval(%struct.point397) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point397* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef byval(%struct.point398) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point398* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef byval(%struct.point399) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point399* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo400(%struct.point400* noalias sret(%struct.point400) align 4 %0, %struct.point400* noundef byval(%struct.point400) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point400* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point400* %0 to i8* + %6 = bitcast %struct.point400* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo401(%struct.point401* noalias sret(%struct.point401) align 4 %0, %struct.point401* noundef byval(%struct.point401) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point401* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point401* %0 to i8* + %6 = bitcast %struct.point401* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo402(%struct.point402* noalias sret(%struct.point402) align 4 %0, %struct.point402* noundef byval(%struct.point402) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point402* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point402* %0 to i8* + %6 = bitcast %struct.point402* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo403(%struct.point403* noalias sret(%struct.point403) align 4 %0, %struct.point403* noundef byval(%struct.point403) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point403* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point403* %0 to i8* + %6 = bitcast %struct.point403* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo404(%struct.point404* noalias sret(%struct.point404) align 4 %0, %struct.point404* noundef byval(%struct.point404) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point404* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point404* %0 to i8* + %6 = bitcast %struct.point404* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo405(%struct.point405* noalias sret(%struct.point405) align 4 %0, %struct.point405* noundef byval(%struct.point405) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point405* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point405* %0 to i8* + %6 = bitcast %struct.point405* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo406(%struct.point406* noalias sret(%struct.point406) align 4 %0, %struct.point406* noundef byval(%struct.point406) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point406* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point406* %0 to i8* + %6 = bitcast %struct.point406* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo407(%struct.point407* noalias sret(%struct.point407) align 4 %0, %struct.point407* noundef byval(%struct.point407) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point407* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point407* %0 to i8* + %6 = bitcast %struct.point407* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo408(%struct.point408* noalias sret(%struct.point408) align 4 %0, %struct.point408* noundef byval(%struct.point408) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point408* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point408* %0 to i8* + %6 = bitcast %struct.point408* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo409(%struct.point409* noalias sret(%struct.point409) align 4 %0, %struct.point409* noundef byval(%struct.point409) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point409* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point409* %0 to i8* + %6 = bitcast %struct.point409* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo410(%struct.point410* noalias sret(%struct.point410) align 4 %0, %struct.point410* noundef byval(%struct.point410) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point410* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point410* %0 to i8* + %6 = bitcast %struct.point410* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo411(%struct.point411* noalias sret(%struct.point411) align 4 %0, %struct.point411* noundef byval(%struct.point411) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point411* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point411* %0 to i8* + %6 = bitcast %struct.point411* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef byval(%struct.point412) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point412* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef byval(%struct.point413) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point413* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef byval(%struct.point414) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point414* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef byval(%struct.point415) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point415* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo416(%struct.point416* noalias sret(%struct.point416) align 4 %0, %struct.point416* noundef byval(%struct.point416) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point416* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point416* %0 to i8* + %6 = bitcast %struct.point416* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef byval(%struct.point417) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point417* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef byval(%struct.point418) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point418* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef byval(%struct.point419) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point419* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef byval(%struct.point420) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point420* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo421(%struct.point421* noalias sret(%struct.point421) align 4 %0, %struct.point421* noundef byval(%struct.point421) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point421* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point421* %0 to i8* + %6 = bitcast %struct.point421* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo422(%struct.point422* noalias sret(%struct.point422) align 4 %0, %struct.point422* noundef byval(%struct.point422) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point422* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point422* %0 to i8* + %6 = bitcast %struct.point422* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo423(%struct.point423* noalias sret(%struct.point423) align 4 %0, %struct.point423* noundef byval(%struct.point423) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point423* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point423* %0 to i8* + %6 = bitcast %struct.point423* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo424(%struct.point424* noalias sret(%struct.point424) align 4 %0, %struct.point424* noundef byval(%struct.point424) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point424* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point424* %0 to i8* + %6 = bitcast %struct.point424* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef byval(%struct.point425) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point425* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef byval(%struct.point426) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point426* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo427(%struct.point427* noalias sret(%struct.point427) align 4 %0, %struct.point427* noundef byval(%struct.point427) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point427* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point427* %0 to i8* + %6 = bitcast %struct.point427* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo428(%struct.point428* noalias sret(%struct.point428) align 4 %0, %struct.point428* noundef byval(%struct.point428) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point428* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point428* %0 to i8* + %6 = bitcast %struct.point428* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo429(%struct.point429* noalias sret(%struct.point429) align 4 %0, %struct.point429* noundef byval(%struct.point429) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point429* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point429* %0 to i8* + %6 = bitcast %struct.point429* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef byval(%struct.point430) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point430* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef byval(%struct.point431) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point431* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo432(%struct.point432* noalias sret(%struct.point432) align 4 %0, %struct.point432* noundef byval(%struct.point432) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point432* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point432* %0 to i8* + %6 = bitcast %struct.point432* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef byval(%struct.point433) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point433* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef byval(%struct.point434) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point434* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef byval(%struct.point435) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point435* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef byval(%struct.point436) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point436* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo437(%struct.point437* noalias sret(%struct.point437) align 4 %0, %struct.point437* noundef byval(%struct.point437) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point437* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point437* %0 to i8* + %6 = bitcast %struct.point437* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef byval(%struct.point438) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point438* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef byval(%struct.point439) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point439* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef byval(%struct.point440) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point440* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef byval(%struct.point441) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point441* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo442(%struct.point442* noalias sret(%struct.point442) align 4 %0, %struct.point442* noundef byval(%struct.point442) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point442* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point442* %0 to i8* + %6 = bitcast %struct.point442* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo443(%struct.point443* noalias sret(%struct.point443) align 4 %0, %struct.point443* noundef byval(%struct.point443) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point443* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point443* %0 to i8* + %6 = bitcast %struct.point443* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo444(%struct.point444* noalias sret(%struct.point444) align 4 %0, %struct.point444* noundef byval(%struct.point444) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point444* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point444* %0 to i8* + %6 = bitcast %struct.point444* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo445(%struct.point445* noalias sret(%struct.point445) align 4 %0, %struct.point445* noundef byval(%struct.point445) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point445* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point445* %0 to i8* + %6 = bitcast %struct.point445* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef byval(%struct.point446) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point446* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef byval(%struct.point447) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point447* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo448(%struct.point448* noalias sret(%struct.point448) align 4 %0, %struct.point448* noundef byval(%struct.point448) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point448* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point448* %0 to i8* + %6 = bitcast %struct.point448* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo449(%struct.point449* noalias sret(%struct.point449) align 4 %0, %struct.point449* noundef byval(%struct.point449) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point449* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point449* %0 to i8* + %6 = bitcast %struct.point449* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo450(%struct.point450* noalias sret(%struct.point450) align 4 %0, %struct.point450* noundef byval(%struct.point450) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point450* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point450* %0 to i8* + %6 = bitcast %struct.point450* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef byval(%struct.point451) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point451* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef byval(%struct.point452) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point452* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo453(%struct.point453* noalias sret(%struct.point453) align 4 %0, %struct.point453* noundef byval(%struct.point453) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point453* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point453* %0 to i8* + %6 = bitcast %struct.point453* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef byval(%struct.point454) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point454* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef byval(%struct.point455) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point455* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef byval(%struct.point456) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point456* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef byval(%struct.point457) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point457* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo458(%struct.point458* noalias sret(%struct.point458) align 4 %0, %struct.point458* noundef byval(%struct.point458) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point458* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point458* %0 to i8* + %6 = bitcast %struct.point458* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef byval(%struct.point459) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point459* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef byval(%struct.point460) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point460* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef byval(%struct.point461) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point461* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef byval(%struct.point462) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point462* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo463(%struct.point463* noalias sret(%struct.point463) align 4 %0, %struct.point463* noundef byval(%struct.point463) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point463* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point463* %0 to i8* + %6 = bitcast %struct.point463* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo464(%struct.point464* noalias sret(%struct.point464) align 4 %0, %struct.point464* noundef byval(%struct.point464) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point464* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point464* %0 to i8* + %6 = bitcast %struct.point464* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo465(%struct.point465* noalias sret(%struct.point465) align 4 %0, %struct.point465* noundef byval(%struct.point465) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point465* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point465* %0 to i8* + %6 = bitcast %struct.point465* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo466(%struct.point466* noalias sret(%struct.point466) align 4 %0, %struct.point466* noundef byval(%struct.point466) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point466* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point466* %0 to i8* + %6 = bitcast %struct.point466* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo467(%struct.point467* noalias sret(%struct.point467) align 4 %0, %struct.point467* noundef byval(%struct.point467) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point467* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point467* %0 to i8* + %6 = bitcast %struct.point467* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo468(%struct.point468* noalias sret(%struct.point468) align 4 %0, %struct.point468* noundef byval(%struct.point468) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point468* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point468* %0 to i8* + %6 = bitcast %struct.point468* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo469(%struct.point469* noalias sret(%struct.point469) align 4 %0, %struct.point469* noundef byval(%struct.point469) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point469* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point469* %0 to i8* + %6 = bitcast %struct.point469* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo470(%struct.point470* noalias sret(%struct.point470) align 4 %0, %struct.point470* noundef byval(%struct.point470) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point470* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point470* %0 to i8* + %6 = bitcast %struct.point470* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo471(%struct.point471* noalias sret(%struct.point471) align 4 %0, %struct.point471* noundef byval(%struct.point471) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point471* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point471* %0 to i8* + %6 = bitcast %struct.point471* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo472(%struct.point472* noalias sret(%struct.point472) align 4 %0, %struct.point472* noundef byval(%struct.point472) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point472* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point472* %0 to i8* + %6 = bitcast %struct.point472* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo473(%struct.point473* noalias sret(%struct.point473) align 4 %0, %struct.point473* noundef byval(%struct.point473) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point473* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point473* %0 to i8* + %6 = bitcast %struct.point473* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo474(%struct.point474* noalias sret(%struct.point474) align 4 %0, %struct.point474* noundef byval(%struct.point474) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point474* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point474* %0 to i8* + %6 = bitcast %struct.point474* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef byval(%struct.point475) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point475* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef byval(%struct.point476) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point476* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef byval(%struct.point477) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point477* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef byval(%struct.point478) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point478* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo479(%struct.point479* noalias sret(%struct.point479) align 4 %0, %struct.point479* noundef byval(%struct.point479) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point479* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point479* %0 to i8* + %6 = bitcast %struct.point479* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef byval(%struct.point480) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point480* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef byval(%struct.point481) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point481* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef byval(%struct.point482) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point482* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef byval(%struct.point483) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point483* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo484(%struct.point484* noalias sret(%struct.point484) align 4 %0, %struct.point484* noundef byval(%struct.point484) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point484* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point484* %0 to i8* + %6 = bitcast %struct.point484* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo485(%struct.point485* noalias sret(%struct.point485) align 4 %0, %struct.point485* noundef byval(%struct.point485) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point485* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point485* %0 to i8* + %6 = bitcast %struct.point485* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo486(%struct.point486* noalias sret(%struct.point486) align 4 %0, %struct.point486* noundef byval(%struct.point486) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point486* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point486* %0 to i8* + %6 = bitcast %struct.point486* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo487(%struct.point487* noalias sret(%struct.point487) align 4 %0, %struct.point487* noundef byval(%struct.point487) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point487* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point487* %0 to i8* + %6 = bitcast %struct.point487* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo488(%struct.point488* noalias sret(%struct.point488) align 4 %0, %struct.point488* noundef byval(%struct.point488) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point488* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point488* %0 to i8* + %6 = bitcast %struct.point488* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo489(%struct.point489* noalias sret(%struct.point489) align 4 %0, %struct.point489* noundef byval(%struct.point489) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point489* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point489* %0 to i8* + %6 = bitcast %struct.point489* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo490(%struct.point490* noalias sret(%struct.point490) align 4 %0, %struct.point490* noundef byval(%struct.point490) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point490* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point490* %0 to i8* + %6 = bitcast %struct.point490* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo491(%struct.point491* noalias sret(%struct.point491) align 4 %0, %struct.point491* noundef byval(%struct.point491) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point491* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point491* %0 to i8* + %6 = bitcast %struct.point491* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo492(%struct.point492* noalias sret(%struct.point492) align 4 %0, %struct.point492* noundef byval(%struct.point492) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point492* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point492* %0 to i8* + %6 = bitcast %struct.point492* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo493(%struct.point493* noalias sret(%struct.point493) align 4 %0, %struct.point493* noundef byval(%struct.point493) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point493* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point493* %0 to i8* + %6 = bitcast %struct.point493* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo494(%struct.point494* noalias sret(%struct.point494) align 4 %0, %struct.point494* noundef byval(%struct.point494) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point494* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point494* %0 to i8* + %6 = bitcast %struct.point494* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo495(%struct.point495* noalias sret(%struct.point495) align 4 %0, %struct.point495* noundef byval(%struct.point495) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point495* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point495* %0 to i8* + %6 = bitcast %struct.point495* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef byval(%struct.point496) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point496* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef byval(%struct.point497) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point497* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef byval(%struct.point498) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point498* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef byval(%struct.point499) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point499* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo500(%struct.point500* noalias sret(%struct.point500) align 4 %0, %struct.point500* noundef byval(%struct.point500) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point500* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point500* %0 to i8* + %6 = bitcast %struct.point500* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef byval(%struct.point501) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point501* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef byval(%struct.point502) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point502* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef byval(%struct.point503) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point503* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef byval(%struct.point504) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point504* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo505(%struct.point505* noalias sret(%struct.point505) align 4 %0, %struct.point505* noundef byval(%struct.point505) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point505* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point505* %0 to i8* + %6 = bitcast %struct.point505* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo506(%struct.point506* noalias sret(%struct.point506) align 4 %0, %struct.point506* noundef byval(%struct.point506) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point506* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point506* %0 to i8* + %6 = bitcast %struct.point506* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo507(%struct.point507* noalias sret(%struct.point507) align 4 %0, %struct.point507* noundef byval(%struct.point507) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point507* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point507* %0 to i8* + %6 = bitcast %struct.point507* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo508(%struct.point508* noalias sret(%struct.point508) align 4 %0, %struct.point508* noundef byval(%struct.point508) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point508* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point508* %0 to i8* + %6 = bitcast %struct.point508* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef byval(%struct.point509) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point509* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef byval(%struct.point510) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point510* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo511(%struct.point511* noalias sret(%struct.point511) align 4 %0, %struct.point511* noundef byval(%struct.point511) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point511* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point511* %0 to i8* + %6 = bitcast %struct.point511* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo512(%struct.point512* noalias sret(%struct.point512) align 4 %0, %struct.point512* noundef byval(%struct.point512) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point512* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point512* %0 to i8* + %6 = bitcast %struct.point512* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo513(%struct.point513* noalias sret(%struct.point513) align 4 %0, %struct.point513* noundef byval(%struct.point513) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point513* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point513* %0 to i8* + %6 = bitcast %struct.point513* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef byval(%struct.point514) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point514* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef byval(%struct.point515) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point515* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo516(%struct.point516* noalias sret(%struct.point516) align 4 %0, %struct.point516* noundef byval(%struct.point516) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point516* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point516* %0 to i8* + %6 = bitcast %struct.point516* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef byval(%struct.point517) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point517* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef byval(%struct.point518) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point518* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef byval(%struct.point519) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point519* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef byval(%struct.point520) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point520* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo521(%struct.point521* noalias sret(%struct.point521) align 4 %0, %struct.point521* noundef byval(%struct.point521) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point521* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point521* %0 to i8* + %6 = bitcast %struct.point521* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef byval(%struct.point522) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point522* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef byval(%struct.point523) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point523* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef byval(%struct.point524) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point524* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef byval(%struct.point525) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point525* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo526(%struct.point526* noalias sret(%struct.point526) align 4 %0, %struct.point526* noundef byval(%struct.point526) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point526* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point526* %0 to i8* + %6 = bitcast %struct.point526* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo527(%struct.point527* noalias sret(%struct.point527) align 4 %0, %struct.point527* noundef byval(%struct.point527) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point527* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point527* %0 to i8* + %6 = bitcast %struct.point527* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo528(%struct.point528* noalias sret(%struct.point528) align 4 %0, %struct.point528* noundef byval(%struct.point528) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point528* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point528* %0 to i8* + %6 = bitcast %struct.point528* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo529(%struct.point529* noalias sret(%struct.point529) align 4 %0, %struct.point529* noundef byval(%struct.point529) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point529* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point529* %0 to i8* + %6 = bitcast %struct.point529* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef byval(%struct.point530) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point530* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef byval(%struct.point531) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point531* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo532(%struct.point532* noalias sret(%struct.point532) align 4 %0, %struct.point532* noundef byval(%struct.point532) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point532* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point532* %0 to i8* + %6 = bitcast %struct.point532* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo533(%struct.point533* noalias sret(%struct.point533) align 4 %0, %struct.point533* noundef byval(%struct.point533) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point533* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point533* %0 to i8* + %6 = bitcast %struct.point533* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo534(%struct.point534* noalias sret(%struct.point534) align 4 %0, %struct.point534* noundef byval(%struct.point534) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point534* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point534* %0 to i8* + %6 = bitcast %struct.point534* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef byval(%struct.point535) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point535* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef byval(%struct.point536) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point536* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo537(%struct.point537* noalias sret(%struct.point537) align 4 %0, %struct.point537* noundef byval(%struct.point537) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point537* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point537* %0 to i8* + %6 = bitcast %struct.point537* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef byval(%struct.point538) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point538* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef byval(%struct.point539) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point539* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef byval(%struct.point540) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point540* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef byval(%struct.point541) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point541* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo542(%struct.point542* noalias sret(%struct.point542) align 4 %0, %struct.point542* noundef byval(%struct.point542) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point542* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point542* %0 to i8* + %6 = bitcast %struct.point542* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef byval(%struct.point543) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point543* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef byval(%struct.point544) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point544* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef byval(%struct.point545) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point545* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef byval(%struct.point546) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point546* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo547(%struct.point547* noalias sret(%struct.point547) align 4 %0, %struct.point547* noundef byval(%struct.point547) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point547* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point547* %0 to i8* + %6 = bitcast %struct.point547* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo548(%struct.point548* noalias sret(%struct.point548) align 4 %0, %struct.point548* noundef byval(%struct.point548) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point548* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point548* %0 to i8* + %6 = bitcast %struct.point548* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo549(%struct.point549* noalias sret(%struct.point549) align 4 %0, %struct.point549* noundef byval(%struct.point549) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point549* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point549* %0 to i8* + %6 = bitcast %struct.point549* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo550(%struct.point550* noalias sret(%struct.point550) align 4 %0, %struct.point550* noundef byval(%struct.point550) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point550* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point550* %0 to i8* + %6 = bitcast %struct.point550* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo551(%struct.point551* noalias sret(%struct.point551) align 4 %0, %struct.point551* noundef byval(%struct.point551) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point551* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point551* %0 to i8* + %6 = bitcast %struct.point551* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo552(%struct.point552* noalias sret(%struct.point552) align 4 %0, %struct.point552* noundef byval(%struct.point552) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point552* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point552* %0 to i8* + %6 = bitcast %struct.point552* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo553(%struct.point553* noalias sret(%struct.point553) align 4 %0, %struct.point553* noundef byval(%struct.point553) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point553* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point553* %0 to i8* + %6 = bitcast %struct.point553* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo554(%struct.point554* noalias sret(%struct.point554) align 4 %0, %struct.point554* noundef byval(%struct.point554) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point554* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point554* %0 to i8* + %6 = bitcast %struct.point554* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo555(%struct.point555* noalias sret(%struct.point555) align 4 %0, %struct.point555* noundef byval(%struct.point555) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point555* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point555* %0 to i8* + %6 = bitcast %struct.point555* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo556(%struct.point556* noalias sret(%struct.point556) align 4 %0, %struct.point556* noundef byval(%struct.point556) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point556* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point556* %0 to i8* + %6 = bitcast %struct.point556* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo557(%struct.point557* noalias sret(%struct.point557) align 4 %0, %struct.point557* noundef byval(%struct.point557) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point557* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point557* %0 to i8* + %6 = bitcast %struct.point557* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo558(%struct.point558* noalias sret(%struct.point558) align 4 %0, %struct.point558* noundef byval(%struct.point558) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point558* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point558* %0 to i8* + %6 = bitcast %struct.point558* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo559(%struct.point559* noalias sret(%struct.point559) align 4 %0, %struct.point559* noundef byval(%struct.point559) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point559* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point559* %0 to i8* + %6 = bitcast %struct.point559* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo560(%struct.point560* noalias sret(%struct.point560) align 4 %0, %struct.point560* noundef byval(%struct.point560) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point560* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point560* %0 to i8* + %6 = bitcast %struct.point560* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo561(%struct.point561* noalias sret(%struct.point561) align 4 %0, %struct.point561* noundef byval(%struct.point561) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point561* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point561* %0 to i8* + %6 = bitcast %struct.point561* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo562(%struct.point562* noalias sret(%struct.point562) align 4 %0, %struct.point562* noundef byval(%struct.point562) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point562* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point562* %0 to i8* + %6 = bitcast %struct.point562* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo563(%struct.point563* noalias sret(%struct.point563) align 4 %0, %struct.point563* noundef byval(%struct.point563) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point563* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point563* %0 to i8* + %6 = bitcast %struct.point563* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo564(%struct.point564* noalias sret(%struct.point564) align 4 %0, %struct.point564* noundef byval(%struct.point564) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point564* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point564* %0 to i8* + %6 = bitcast %struct.point564* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo565(%struct.point565* noalias sret(%struct.point565) align 4 %0, %struct.point565* noundef byval(%struct.point565) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point565* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point565* %0 to i8* + %6 = bitcast %struct.point565* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo566(%struct.point566* noalias sret(%struct.point566) align 4 %0, %struct.point566* noundef byval(%struct.point566) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point566* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point566* %0 to i8* + %6 = bitcast %struct.point566* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo567(%struct.point567* noalias sret(%struct.point567) align 4 %0, %struct.point567* noundef byval(%struct.point567) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point567* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point567* %0 to i8* + %6 = bitcast %struct.point567* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo568(%struct.point568* noalias sret(%struct.point568) align 4 %0, %struct.point568* noundef byval(%struct.point568) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point568* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point568* %0 to i8* + %6 = bitcast %struct.point568* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo569(%struct.point569* noalias sret(%struct.point569) align 4 %0, %struct.point569* noundef byval(%struct.point569) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point569* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point569* %0 to i8* + %6 = bitcast %struct.point569* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo570(%struct.point570* noalias sret(%struct.point570) align 4 %0, %struct.point570* noundef byval(%struct.point570) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point570* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point570* %0 to i8* + %6 = bitcast %struct.point570* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo571(%struct.point571* noalias sret(%struct.point571) align 4 %0, %struct.point571* noundef byval(%struct.point571) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point571* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point571* %0 to i8* + %6 = bitcast %struct.point571* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo572(%struct.point572* noalias sret(%struct.point572) align 4 %0, %struct.point572* noundef byval(%struct.point572) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point572* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point572* %0 to i8* + %6 = bitcast %struct.point572* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo573(%struct.point573* noalias sret(%struct.point573) align 4 %0, %struct.point573* noundef byval(%struct.point573) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point573* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point573* %0 to i8* + %6 = bitcast %struct.point573* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo574(%struct.point574* noalias sret(%struct.point574) align 4 %0, %struct.point574* noundef byval(%struct.point574) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point574* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point574* %0 to i8* + %6 = bitcast %struct.point574* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo575(%struct.point575* noalias sret(%struct.point575) align 4 %0, %struct.point575* noundef byval(%struct.point575) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point575* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point575* %0 to i8* + %6 = bitcast %struct.point575* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo576(%struct.point576* noalias sret(%struct.point576) align 4 %0, %struct.point576* noundef byval(%struct.point576) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point576* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point576* %0 to i8* + %6 = bitcast %struct.point576* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo577(%struct.point577* noalias sret(%struct.point577) align 4 %0, %struct.point577* noundef byval(%struct.point577) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point577* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point577* %0 to i8* + %6 = bitcast %struct.point577* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo578(%struct.point578* noalias sret(%struct.point578) align 4 %0, %struct.point578* noundef byval(%struct.point578) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point578* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point578* %0 to i8* + %6 = bitcast %struct.point578* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo579(%struct.point579* noalias sret(%struct.point579) align 4 %0, %struct.point579* noundef byval(%struct.point579) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point579* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point579* %0 to i8* + %6 = bitcast %struct.point579* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo580(%struct.point580* noalias sret(%struct.point580) align 4 %0, %struct.point580* noundef byval(%struct.point580) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point580* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point580* %0 to i8* + %6 = bitcast %struct.point580* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo581(%struct.point581* noalias sret(%struct.point581) align 4 %0, %struct.point581* noundef byval(%struct.point581) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point581* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point581* %0 to i8* + %6 = bitcast %struct.point581* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo582(%struct.point582* noalias sret(%struct.point582) align 4 %0, %struct.point582* noundef byval(%struct.point582) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point582* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point582* %0 to i8* + %6 = bitcast %struct.point582* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo583(%struct.point583* noalias sret(%struct.point583) align 4 %0, %struct.point583* noundef byval(%struct.point583) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point583* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point583* %0 to i8* + %6 = bitcast %struct.point583* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo584(%struct.point584* noalias sret(%struct.point584) align 4 %0, %struct.point584* noundef byval(%struct.point584) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point584* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point584* %0 to i8* + %6 = bitcast %struct.point584* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo585(%struct.point585* noalias sret(%struct.point585) align 4 %0, %struct.point585* noundef byval(%struct.point585) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point585* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point585* %0 to i8* + %6 = bitcast %struct.point585* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo586(%struct.point586* noalias sret(%struct.point586) align 4 %0, %struct.point586* noundef byval(%struct.point586) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point586* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point586* %0 to i8* + %6 = bitcast %struct.point586* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo587(%struct.point587* noalias sret(%struct.point587) align 4 %0, %struct.point587* noundef byval(%struct.point587) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point587* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point587* %0 to i8* + %6 = bitcast %struct.point587* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo588(%struct.point588* noalias sret(%struct.point588) align 4 %0, %struct.point588* noundef byval(%struct.point588) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point588* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point588* %0 to i8* + %6 = bitcast %struct.point588* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo589(%struct.point589* noalias sret(%struct.point589) align 4 %0, %struct.point589* noundef byval(%struct.point589) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point589* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point589* %0 to i8* + %6 = bitcast %struct.point589* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo590(%struct.point590* noalias sret(%struct.point590) align 4 %0, %struct.point590* noundef byval(%struct.point590) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point590* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point590* %0 to i8* + %6 = bitcast %struct.point590* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo591(%struct.point591* noalias sret(%struct.point591) align 4 %0, %struct.point591* noundef byval(%struct.point591) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point591* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point591* %0 to i8* + %6 = bitcast %struct.point591* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo592(%struct.point592* noalias sret(%struct.point592) align 4 %0, %struct.point592* noundef byval(%struct.point592) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point592* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point592* %0 to i8* + %6 = bitcast %struct.point592* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef byval(%struct.point593) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point593* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef byval(%struct.point594) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point594* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo595(%struct.point595* noalias sret(%struct.point595) align 4 %0, %struct.point595* noundef byval(%struct.point595) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point595* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point595* %0 to i8* + %6 = bitcast %struct.point595* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo596(%struct.point596* noalias sret(%struct.point596) align 4 %0, %struct.point596* noundef byval(%struct.point596) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point596* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point596* %0 to i8* + %6 = bitcast %struct.point596* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo597(%struct.point597* noalias sret(%struct.point597) align 4 %0, %struct.point597* noundef byval(%struct.point597) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point597* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point597* %0 to i8* + %6 = bitcast %struct.point597* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef byval(%struct.point598) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point598* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef byval(%struct.point599) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point599* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo600(%struct.point600* noalias sret(%struct.point600) align 4 %0, %struct.point600* noundef byval(%struct.point600) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point600* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point600* %0 to i8* + %6 = bitcast %struct.point600* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef byval(%struct.point601) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point601* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef byval(%struct.point602) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point602* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef byval(%struct.point603) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point603* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef byval(%struct.point604) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point604* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo605(%struct.point605* noalias sret(%struct.point605) align 4 %0, %struct.point605* noundef byval(%struct.point605) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point605* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point605* %0 to i8* + %6 = bitcast %struct.point605* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef byval(%struct.point606) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point606* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef byval(%struct.point607) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point607* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef byval(%struct.point608) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point608* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef byval(%struct.point609) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point609* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo610(%struct.point610* noalias sret(%struct.point610) align 4 %0, %struct.point610* noundef byval(%struct.point610) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point610* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point610* %0 to i8* + %6 = bitcast %struct.point610* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo611(%struct.point611* noalias sret(%struct.point611) align 4 %0, %struct.point611* noundef byval(%struct.point611) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point611* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point611* %0 to i8* + %6 = bitcast %struct.point611* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo612(%struct.point612* noalias sret(%struct.point612) align 4 %0, %struct.point612* noundef byval(%struct.point612) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point612* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point612* %0 to i8* + %6 = bitcast %struct.point612* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo613(%struct.point613* noalias sret(%struct.point613) align 4 %0, %struct.point613* noundef byval(%struct.point613) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point613* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point613* %0 to i8* + %6 = bitcast %struct.point613* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef byval(%struct.point614) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point614* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef byval(%struct.point615) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point615* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo616(%struct.point616* noalias sret(%struct.point616) align 4 %0, %struct.point616* noundef byval(%struct.point616) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point616* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point616* %0 to i8* + %6 = bitcast %struct.point616* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo617(%struct.point617* noalias sret(%struct.point617) align 4 %0, %struct.point617* noundef byval(%struct.point617) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point617* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point617* %0 to i8* + %6 = bitcast %struct.point617* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo618(%struct.point618* noalias sret(%struct.point618) align 4 %0, %struct.point618* noundef byval(%struct.point618) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point618* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point618* %0 to i8* + %6 = bitcast %struct.point618* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef byval(%struct.point619) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point619* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef byval(%struct.point620) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point620* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo621(%struct.point621* noalias sret(%struct.point621) align 4 %0, %struct.point621* noundef byval(%struct.point621) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point621* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point621* %0 to i8* + %6 = bitcast %struct.point621* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef byval(%struct.point622) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point622* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef byval(%struct.point623) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point623* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef byval(%struct.point624) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point624* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef byval(%struct.point625) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point625* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo626(%struct.point626* noalias sret(%struct.point626) align 4 %0, %struct.point626* noundef byval(%struct.point626) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point626* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point626* %0 to i8* + %6 = bitcast %struct.point626* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef byval(%struct.point627) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point627* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef byval(%struct.point628) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point628* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef byval(%struct.point629) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point629* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef byval(%struct.point630) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point630* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo631(%struct.point631* noalias sret(%struct.point631) align 4 %0, %struct.point631* noundef byval(%struct.point631) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point631* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point631* %0 to i8* + %6 = bitcast %struct.point631* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo632(%struct.point632* noalias sret(%struct.point632) align 4 %0, %struct.point632* noundef byval(%struct.point632) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point632* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point632* %0 to i8* + %6 = bitcast %struct.point632* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo633(%struct.point633* noalias sret(%struct.point633) align 4 %0, %struct.point633* noundef byval(%struct.point633) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point633* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point633* %0 to i8* + %6 = bitcast %struct.point633* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo634(%struct.point634* noalias sret(%struct.point634) align 4 %0, %struct.point634* noundef byval(%struct.point634) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point634* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point634* %0 to i8* + %6 = bitcast %struct.point634* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo635(%struct.point635* noalias sret(%struct.point635) align 4 %0, %struct.point635* noundef byval(%struct.point635) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point635* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point635* %0 to i8* + %6 = bitcast %struct.point635* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo636(%struct.point636* noalias sret(%struct.point636) align 4 %0, %struct.point636* noundef byval(%struct.point636) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point636* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point636* %0 to i8* + %6 = bitcast %struct.point636* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo637(%struct.point637* noalias sret(%struct.point637) align 4 %0, %struct.point637* noundef byval(%struct.point637) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point637* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point637* %0 to i8* + %6 = bitcast %struct.point637* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo638(%struct.point638* noalias sret(%struct.point638) align 4 %0, %struct.point638* noundef byval(%struct.point638) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point638* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point638* %0 to i8* + %6 = bitcast %struct.point638* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo639(%struct.point639* noalias sret(%struct.point639) align 4 %0, %struct.point639* noundef byval(%struct.point639) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point639* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point639* %0 to i8* + %6 = bitcast %struct.point639* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo640(%struct.point640* noalias sret(%struct.point640) align 4 %0, %struct.point640* noundef byval(%struct.point640) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point640* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point640* %0 to i8* + %6 = bitcast %struct.point640* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo641(%struct.point641* noalias sret(%struct.point641) align 4 %0, %struct.point641* noundef byval(%struct.point641) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point641* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point641* %0 to i8* + %6 = bitcast %struct.point641* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo642(%struct.point642* noalias sret(%struct.point642) align 4 %0, %struct.point642* noundef byval(%struct.point642) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point642* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point642* %0 to i8* + %6 = bitcast %struct.point642* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo643(%struct.point643* noalias sret(%struct.point643) align 4 %0, %struct.point643* noundef byval(%struct.point643) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point643* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point643* %0 to i8* + %6 = bitcast %struct.point643* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo644(%struct.point644* noalias sret(%struct.point644) align 4 %0, %struct.point644* noundef byval(%struct.point644) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point644* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point644* %0 to i8* + %6 = bitcast %struct.point644* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo645(%struct.point645* noalias sret(%struct.point645) align 4 %0, %struct.point645* noundef byval(%struct.point645) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point645* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point645* %0 to i8* + %6 = bitcast %struct.point645* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo646(%struct.point646* noalias sret(%struct.point646) align 4 %0, %struct.point646* noundef byval(%struct.point646) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point646* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point646* %0 to i8* + %6 = bitcast %struct.point646* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo647(%struct.point647* noalias sret(%struct.point647) align 4 %0, %struct.point647* noundef byval(%struct.point647) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point647* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point647* %0 to i8* + %6 = bitcast %struct.point647* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo648(%struct.point648* noalias sret(%struct.point648) align 4 %0, %struct.point648* noundef byval(%struct.point648) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point648* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point648* %0 to i8* + %6 = bitcast %struct.point648* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo649(%struct.point649* noalias sret(%struct.point649) align 4 %0, %struct.point649* noundef byval(%struct.point649) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point649* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point649* %0 to i8* + %6 = bitcast %struct.point649* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo650(%struct.point650* noalias sret(%struct.point650) align 4 %0, %struct.point650* noundef byval(%struct.point650) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point650* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point650* %0 to i8* + %6 = bitcast %struct.point650* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo651(%struct.point651* noalias sret(%struct.point651) align 4 %0, %struct.point651* noundef byval(%struct.point651) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point651* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point651* %0 to i8* + %6 = bitcast %struct.point651* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo652(%struct.point652* noalias sret(%struct.point652) align 4 %0, %struct.point652* noundef byval(%struct.point652) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point652* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point652* %0 to i8* + %6 = bitcast %struct.point652* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo653(%struct.point653* noalias sret(%struct.point653) align 4 %0, %struct.point653* noundef byval(%struct.point653) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point653* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point653* %0 to i8* + %6 = bitcast %struct.point653* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo654(%struct.point654* noalias sret(%struct.point654) align 4 %0, %struct.point654* noundef byval(%struct.point654) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point654* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point654* %0 to i8* + %6 = bitcast %struct.point654* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo655(%struct.point655* noalias sret(%struct.point655) align 4 %0, %struct.point655* noundef byval(%struct.point655) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point655* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point655* %0 to i8* + %6 = bitcast %struct.point655* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo656(%struct.point656* noalias sret(%struct.point656) align 4 %0, %struct.point656* noundef byval(%struct.point656) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point656* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point656* %0 to i8* + %6 = bitcast %struct.point656* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo657(%struct.point657* noalias sret(%struct.point657) align 4 %0, %struct.point657* noundef byval(%struct.point657) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point657* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point657* %0 to i8* + %6 = bitcast %struct.point657* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo658(%struct.point658* noalias sret(%struct.point658) align 4 %0, %struct.point658* noundef byval(%struct.point658) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point658* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point658* %0 to i8* + %6 = bitcast %struct.point658* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo659(%struct.point659* noalias sret(%struct.point659) align 4 %0, %struct.point659* noundef byval(%struct.point659) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point659* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point659* %0 to i8* + %6 = bitcast %struct.point659* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo660(%struct.point660* noalias sret(%struct.point660) align 4 %0, %struct.point660* noundef byval(%struct.point660) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point660* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point660* %0 to i8* + %6 = bitcast %struct.point660* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo661(%struct.point661* noalias sret(%struct.point661) align 4 %0, %struct.point661* noundef byval(%struct.point661) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point661* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point661* %0 to i8* + %6 = bitcast %struct.point661* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo662(%struct.point662* noalias sret(%struct.point662) align 4 %0, %struct.point662* noundef byval(%struct.point662) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point662* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point662* %0 to i8* + %6 = bitcast %struct.point662* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo663(%struct.point663* noalias sret(%struct.point663) align 4 %0, %struct.point663* noundef byval(%struct.point663) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point663* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point663* %0 to i8* + %6 = bitcast %struct.point663* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo664(%struct.point664* noalias sret(%struct.point664) align 4 %0, %struct.point664* noundef byval(%struct.point664) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point664* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point664* %0 to i8* + %6 = bitcast %struct.point664* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo665(%struct.point665* noalias sret(%struct.point665) align 4 %0, %struct.point665* noundef byval(%struct.point665) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point665* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point665* %0 to i8* + %6 = bitcast %struct.point665* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo666(%struct.point666* noalias sret(%struct.point666) align 4 %0, %struct.point666* noundef byval(%struct.point666) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point666* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point666* %0 to i8* + %6 = bitcast %struct.point666* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo667(%struct.point667* noalias sret(%struct.point667) align 4 %0, %struct.point667* noundef byval(%struct.point667) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point667* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point667* %0 to i8* + %6 = bitcast %struct.point667* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo668(%struct.point668* noalias sret(%struct.point668) align 4 %0, %struct.point668* noundef byval(%struct.point668) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point668* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point668* %0 to i8* + %6 = bitcast %struct.point668* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo669(%struct.point669* noalias sret(%struct.point669) align 4 %0, %struct.point669* noundef byval(%struct.point669) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point669* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point669* %0 to i8* + %6 = bitcast %struct.point669* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo670(%struct.point670* noalias sret(%struct.point670) align 4 %0, %struct.point670* noundef byval(%struct.point670) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point670* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point670* %0 to i8* + %6 = bitcast %struct.point670* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo671(%struct.point671* noalias sret(%struct.point671) align 4 %0, %struct.point671* noundef byval(%struct.point671) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point671* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point671* %0 to i8* + %6 = bitcast %struct.point671* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo672(%struct.point672* noalias sret(%struct.point672) align 4 %0, %struct.point672* noundef byval(%struct.point672) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point672* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point672* %0 to i8* + %6 = bitcast %struct.point672* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo673(%struct.point673* noalias sret(%struct.point673) align 4 %0, %struct.point673* noundef byval(%struct.point673) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point673* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point673* %0 to i8* + %6 = bitcast %struct.point673* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo674(%struct.point674* noalias sret(%struct.point674) align 4 %0, %struct.point674* noundef byval(%struct.point674) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point674* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point674* %0 to i8* + %6 = bitcast %struct.point674* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo675(%struct.point675* noalias sret(%struct.point675) align 4 %0, %struct.point675* noundef byval(%struct.point675) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point675* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point675* %0 to i8* + %6 = bitcast %struct.point675* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo676(%struct.point676* noalias sret(%struct.point676) align 4 %0, %struct.point676* noundef byval(%struct.point676) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point676* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point676* %0 to i8* + %6 = bitcast %struct.point676* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef byval(%struct.point677) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point677* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef byval(%struct.point678) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point678* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo679(%struct.point679* noalias sret(%struct.point679) align 4 %0, %struct.point679* noundef byval(%struct.point679) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point679* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point679* %0 to i8* + %6 = bitcast %struct.point679* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo680(%struct.point680* noalias sret(%struct.point680) align 4 %0, %struct.point680* noundef byval(%struct.point680) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point680* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point680* %0 to i8* + %6 = bitcast %struct.point680* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo681(%struct.point681* noalias sret(%struct.point681) align 4 %0, %struct.point681* noundef byval(%struct.point681) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point681* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point681* %0 to i8* + %6 = bitcast %struct.point681* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef byval(%struct.point682) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point682* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef byval(%struct.point683) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point683* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo684(%struct.point684* noalias sret(%struct.point684) align 4 %0, %struct.point684* noundef byval(%struct.point684) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point684* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point684* %0 to i8* + %6 = bitcast %struct.point684* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef byval(%struct.point685) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point685* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef byval(%struct.point686) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point686* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef byval(%struct.point687) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point687* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef byval(%struct.point688) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point688* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo689(%struct.point689* noalias sret(%struct.point689) align 4 %0, %struct.point689* noundef byval(%struct.point689) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point689* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point689* %0 to i8* + %6 = bitcast %struct.point689* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef byval(%struct.point690) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point690* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef byval(%struct.point691) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point691* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef byval(%struct.point692) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point692* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef byval(%struct.point693) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point693* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo694(%struct.point694* noalias sret(%struct.point694) align 4 %0, %struct.point694* noundef byval(%struct.point694) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point694* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point694* %0 to i8* + %6 = bitcast %struct.point694* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo695(%struct.point695* noalias sret(%struct.point695) align 4 %0, %struct.point695* noundef byval(%struct.point695) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point695* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point695* %0 to i8* + %6 = bitcast %struct.point695* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo696(%struct.point696* noalias sret(%struct.point696) align 4 %0, %struct.point696* noundef byval(%struct.point696) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point696* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point696* %0 to i8* + %6 = bitcast %struct.point696* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo697(%struct.point697* noalias sret(%struct.point697) align 4 %0, %struct.point697* noundef byval(%struct.point697) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point697* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point697* %0 to i8* + %6 = bitcast %struct.point697* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef byval(%struct.point698) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point698* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef byval(%struct.point699) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point699* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo700(%struct.point700* noalias sret(%struct.point700) align 4 %0, %struct.point700* noundef byval(%struct.point700) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point700* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point700* %0 to i8* + %6 = bitcast %struct.point700* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo701(%struct.point701* noalias sret(%struct.point701) align 4 %0, %struct.point701* noundef byval(%struct.point701) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point701* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point701* %0 to i8* + %6 = bitcast %struct.point701* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo702(%struct.point702* noalias sret(%struct.point702) align 4 %0, %struct.point702* noundef byval(%struct.point702) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point702* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point702* %0 to i8* + %6 = bitcast %struct.point702* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef byval(%struct.point703) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point703* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef byval(%struct.point704) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point704* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo705(%struct.point705* noalias sret(%struct.point705) align 4 %0, %struct.point705* noundef byval(%struct.point705) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point705* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point705* %0 to i8* + %6 = bitcast %struct.point705* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef byval(%struct.point706) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point706* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef byval(%struct.point707) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point707* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef byval(%struct.point708) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point708* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef byval(%struct.point709) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point709* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo710(%struct.point710* noalias sret(%struct.point710) align 4 %0, %struct.point710* noundef byval(%struct.point710) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point710* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point710* %0 to i8* + %6 = bitcast %struct.point710* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef byval(%struct.point711) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point711* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef byval(%struct.point712) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point712* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef byval(%struct.point713) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point713* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef byval(%struct.point714) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point714* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo715(%struct.point715* noalias sret(%struct.point715) align 4 %0, %struct.point715* noundef byval(%struct.point715) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point715* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point715* %0 to i8* + %6 = bitcast %struct.point715* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo716(%struct.point716* noalias sret(%struct.point716) align 4 %0, %struct.point716* noundef byval(%struct.point716) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point716* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point716* %0 to i8* + %6 = bitcast %struct.point716* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo717(%struct.point717* noalias sret(%struct.point717) align 4 %0, %struct.point717* noundef byval(%struct.point717) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point717* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point717* %0 to i8* + %6 = bitcast %struct.point717* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo718(%struct.point718* noalias sret(%struct.point718) align 4 %0, %struct.point718* noundef byval(%struct.point718) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point718* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point718* %0 to i8* + %6 = bitcast %struct.point718* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo719(%struct.point719* noalias sret(%struct.point719) align 4 %0, %struct.point719* noundef byval(%struct.point719) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point719* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point719* %0 to i8* + %6 = bitcast %struct.point719* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo720(%struct.point720* noalias sret(%struct.point720) align 4 %0, %struct.point720* noundef byval(%struct.point720) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point720* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point720* %0 to i8* + %6 = bitcast %struct.point720* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo721(%struct.point721* noalias sret(%struct.point721) align 4 %0, %struct.point721* noundef byval(%struct.point721) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point721* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point721* %0 to i8* + %6 = bitcast %struct.point721* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo722(%struct.point722* noalias sret(%struct.point722) align 4 %0, %struct.point722* noundef byval(%struct.point722) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point722* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point722* %0 to i8* + %6 = bitcast %struct.point722* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo723(%struct.point723* noalias sret(%struct.point723) align 4 %0, %struct.point723* noundef byval(%struct.point723) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point723* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point723* %0 to i8* + %6 = bitcast %struct.point723* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo724(%struct.point724* noalias sret(%struct.point724) align 4 %0, %struct.point724* noundef byval(%struct.point724) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point724* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point724* %0 to i8* + %6 = bitcast %struct.point724* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo725(%struct.point725* noalias sret(%struct.point725) align 4 %0, %struct.point725* noundef byval(%struct.point725) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point725* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point725* %0 to i8* + %6 = bitcast %struct.point725* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo726(%struct.point726* noalias sret(%struct.point726) align 4 %0, %struct.point726* noundef byval(%struct.point726) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point726* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point726* %0 to i8* + %6 = bitcast %struct.point726* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef byval(%struct.point727) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point727* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef byval(%struct.point728) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point728* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef byval(%struct.point729) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point729* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef byval(%struct.point730) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point730* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo731(%struct.point731* noalias sret(%struct.point731) align 4 %0, %struct.point731* noundef byval(%struct.point731) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point731* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point731* %0 to i8* + %6 = bitcast %struct.point731* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef byval(%struct.point732) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point732* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef byval(%struct.point733) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point733* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef byval(%struct.point734) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point734* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef byval(%struct.point735) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point735* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo736(%struct.point736* noalias sret(%struct.point736) align 4 %0, %struct.point736* noundef byval(%struct.point736) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point736* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point736* %0 to i8* + %6 = bitcast %struct.point736* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo737(%struct.point737* noalias sret(%struct.point737) align 4 %0, %struct.point737* noundef byval(%struct.point737) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point737* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point737* %0 to i8* + %6 = bitcast %struct.point737* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo738(%struct.point738* noalias sret(%struct.point738) align 4 %0, %struct.point738* noundef byval(%struct.point738) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point738* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point738* %0 to i8* + %6 = bitcast %struct.point738* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo739(%struct.point739* noalias sret(%struct.point739) align 4 %0, %struct.point739* noundef byval(%struct.point739) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point739* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point739* %0 to i8* + %6 = bitcast %struct.point739* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo740(%struct.point740* noalias sret(%struct.point740) align 4 %0, %struct.point740* noundef byval(%struct.point740) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point740* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point740* %0 to i8* + %6 = bitcast %struct.point740* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo741(%struct.point741* noalias sret(%struct.point741) align 4 %0, %struct.point741* noundef byval(%struct.point741) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point741* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point741* %0 to i8* + %6 = bitcast %struct.point741* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo742(%struct.point742* noalias sret(%struct.point742) align 4 %0, %struct.point742* noundef byval(%struct.point742) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point742* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point742* %0 to i8* + %6 = bitcast %struct.point742* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo743(%struct.point743* noalias sret(%struct.point743) align 4 %0, %struct.point743* noundef byval(%struct.point743) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point743* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point743* %0 to i8* + %6 = bitcast %struct.point743* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo744(%struct.point744* noalias sret(%struct.point744) align 4 %0, %struct.point744* noundef byval(%struct.point744) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point744* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point744* %0 to i8* + %6 = bitcast %struct.point744* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo745(%struct.point745* noalias sret(%struct.point745) align 4 %0, %struct.point745* noundef byval(%struct.point745) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point745* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point745* %0 to i8* + %6 = bitcast %struct.point745* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo746(%struct.point746* noalias sret(%struct.point746) align 4 %0, %struct.point746* noundef byval(%struct.point746) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point746* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point746* %0 to i8* + %6 = bitcast %struct.point746* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo747(%struct.point747* noalias sret(%struct.point747) align 4 %0, %struct.point747* noundef byval(%struct.point747) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point747* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point747* %0 to i8* + %6 = bitcast %struct.point747* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef byval(%struct.point748) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point748* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef byval(%struct.point749) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point749* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef byval(%struct.point750) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point750* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef byval(%struct.point751) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point751* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo752(%struct.point752* noalias sret(%struct.point752) align 4 %0, %struct.point752* noundef byval(%struct.point752) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point752* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point752* %0 to i8* + %6 = bitcast %struct.point752* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef byval(%struct.point753) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point753* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef byval(%struct.point754) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point754* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef byval(%struct.point755) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point755* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef byval(%struct.point756) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point756* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo757(%struct.point757* noalias sret(%struct.point757) align 4 %0, i32 %1, float %2, i32 %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point757, align 4 + %7 = bitcast %struct.point757* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point757, %struct.point757* %6, i32 0, i32 0 + store i32 %1, i32* %8, align 4 + %9 = getelementptr inbounds %struct.point757, %struct.point757* %6, i32 0, i32 1 + store float %2, float* %9, align 4 + %10 = getelementptr inbounds %struct.point757, %struct.point757* %6, i32 0, i32 2 + store i32 %3, i32* %10, align 4 + %11 = bitcast %struct.point757* %0 to i8* + %12 = bitcast %struct.point757* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo758(%struct.point758* noalias sret(%struct.point758) align 4 %0, %struct.point758* noundef byval(%struct.point758) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point758* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point758* %0 to i8* + %6 = bitcast %struct.point758* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo759(%struct.point759* noalias sret(%struct.point759) align 4 %0, %struct.point759* noundef byval(%struct.point759) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point759* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point759* %0 to i8* + %6 = bitcast %struct.point759* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo760(%struct.point760* noalias sret(%struct.point760) align 4 %0, %struct.point760* noundef byval(%struct.point760) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point760* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point760* %0 to i8* + %6 = bitcast %struct.point760* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef byval(%struct.point761) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point761* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef byval(%struct.point762) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point762* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo763(%struct.point763* noalias sret(%struct.point763) align 4 %0, %struct.point763* noundef byval(%struct.point763) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point763* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point763* %0 to i8* + %6 = bitcast %struct.point763* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo764(%struct.point764* noalias sret(%struct.point764) align 4 %0, %struct.point764* noundef byval(%struct.point764) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point764* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point764* %0 to i8* + %6 = bitcast %struct.point764* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo765(%struct.point765* noalias sret(%struct.point765) align 4 %0, %struct.point765* noundef byval(%struct.point765) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point765* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point765* %0 to i8* + %6 = bitcast %struct.point765* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef byval(%struct.point766) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point766* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef byval(%struct.point767) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point767* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo768(%struct.point768* noalias sret(%struct.point768) align 4 %0, i32 %1, float %2, i32 %3, i32 %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point768, align 4 + %8 = bitcast %struct.point768* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point768, %struct.point768* %7, i32 0, i32 0 + store i32 %1, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point768, %struct.point768* %7, i32 0, i32 1 + store float %2, float* %10, align 4 + %11 = getelementptr inbounds %struct.point768, %struct.point768* %7, i32 0, i32 2 + store i32 %3, i32* %11, align 4 + %12 = getelementptr inbounds %struct.point768, %struct.point768* %7, i32 0, i32 3 + store i32 %4, i32* %12, align 4 + %13 = bitcast %struct.point768* %0 to i8* + %14 = bitcast %struct.point768* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef byval(%struct.point769) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point769* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef byval(%struct.point770) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point770* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef byval(%struct.point771) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point771* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef byval(%struct.point772) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point772* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo773(%struct.point773* noalias sret(%struct.point773) align 4 %0, i32 %1, float %2, i32 %3, float %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point773, align 4 + %8 = bitcast %struct.point773* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point773, %struct.point773* %7, i32 0, i32 0 + store i32 %1, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point773, %struct.point773* %7, i32 0, i32 1 + store float %2, float* %10, align 4 + %11 = getelementptr inbounds %struct.point773, %struct.point773* %7, i32 0, i32 2 + store i32 %3, i32* %11, align 4 + %12 = getelementptr inbounds %struct.point773, %struct.point773* %7, i32 0, i32 3 + store float %4, float* %12, align 4 + %13 = bitcast %struct.point773* %0 to i8* + %14 = bitcast %struct.point773* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef byval(%struct.point774) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point774* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef byval(%struct.point775) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point775* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef byval(%struct.point776) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point776* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef byval(%struct.point777) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point777* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo778(%struct.point778* noalias sret(%struct.point778) align 4 %0, i32 %1, float %2, float %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point778, align 4 + %7 = bitcast %struct.point778* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point778, %struct.point778* %6, i32 0, i32 0 + store i32 %1, i32* %8, align 4 + %9 = getelementptr inbounds %struct.point778, %struct.point778* %6, i32 0, i32 1 + store float %2, float* %9, align 4 + %10 = getelementptr inbounds %struct.point778, %struct.point778* %6, i32 0, i32 2 + store float %3, float* %10, align 4 + %11 = bitcast %struct.point778* %0 to i8* + %12 = bitcast %struct.point778* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo779(%struct.point779* noalias sret(%struct.point779) align 4 %0, %struct.point779* noundef byval(%struct.point779) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point779* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point779* %0 to i8* + %6 = bitcast %struct.point779* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo780(%struct.point780* noalias sret(%struct.point780) align 4 %0, %struct.point780* noundef byval(%struct.point780) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point780* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point780* %0 to i8* + %6 = bitcast %struct.point780* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo781(%struct.point781* noalias sret(%struct.point781) align 4 %0, %struct.point781* noundef byval(%struct.point781) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point781* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point781* %0 to i8* + %6 = bitcast %struct.point781* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef byval(%struct.point782) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point782* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef byval(%struct.point783) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point783* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo784(%struct.point784* noalias sret(%struct.point784) align 4 %0, %struct.point784* noundef byval(%struct.point784) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point784* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point784* %0 to i8* + %6 = bitcast %struct.point784* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo785(%struct.point785* noalias sret(%struct.point785) align 4 %0, %struct.point785* noundef byval(%struct.point785) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point785* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point785* %0 to i8* + %6 = bitcast %struct.point785* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo786(%struct.point786* noalias sret(%struct.point786) align 4 %0, %struct.point786* noundef byval(%struct.point786) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point786* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point786* %0 to i8* + %6 = bitcast %struct.point786* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef byval(%struct.point787) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point787* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef byval(%struct.point788) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point788* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo789(%struct.point789* noalias sret(%struct.point789) align 4 %0, i32 %1, float %2, float %3, i32 %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point789, align 4 + %8 = bitcast %struct.point789* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point789, %struct.point789* %7, i32 0, i32 0 + store i32 %1, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point789, %struct.point789* %7, i32 0, i32 1 + store float %2, float* %10, align 4 + %11 = getelementptr inbounds %struct.point789, %struct.point789* %7, i32 0, i32 2 + store float %3, float* %11, align 4 + %12 = getelementptr inbounds %struct.point789, %struct.point789* %7, i32 0, i32 3 + store i32 %4, i32* %12, align 4 + %13 = bitcast %struct.point789* %0 to i8* + %14 = bitcast %struct.point789* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef byval(%struct.point790) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point790* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef byval(%struct.point791) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point791* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef byval(%struct.point792) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point792* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef byval(%struct.point793) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point793* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo794(%struct.point794* noalias sret(%struct.point794) align 4 %0, i32 %1, float %2, float %3, float %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point794, align 4 + %8 = bitcast %struct.point794* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point794, %struct.point794* %7, i32 0, i32 0 + store i32 %1, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point794, %struct.point794* %7, i32 0, i32 1 + store float %2, float* %10, align 4 + %11 = getelementptr inbounds %struct.point794, %struct.point794* %7, i32 0, i32 2 + store float %3, float* %11, align 4 + %12 = getelementptr inbounds %struct.point794, %struct.point794* %7, i32 0, i32 3 + store float %4, float* %12, align 4 + %13 = bitcast %struct.point794* %0 to i8* + %14 = bitcast %struct.point794* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef byval(%struct.point795) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point795* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef byval(%struct.point796) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point796* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef byval(%struct.point797) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point797* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef byval(%struct.point798) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point798* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo799(%struct.point799* noalias sret(%struct.point799) align 4 %0, %struct.point799* noundef byval(%struct.point799) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point799* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point799* %0 to i8* + %6 = bitcast %struct.point799* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo800(%struct.point800* noalias sret(%struct.point800) align 4 %0, %struct.point800* noundef byval(%struct.point800) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point800* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point800* %0 to i8* + %6 = bitcast %struct.point800* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo801(%struct.point801* noalias sret(%struct.point801) align 4 %0, %struct.point801* noundef byval(%struct.point801) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point801* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point801* %0 to i8* + %6 = bitcast %struct.point801* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo802(%struct.point802* noalias sret(%struct.point802) align 4 %0, %struct.point802* noundef byval(%struct.point802) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point802* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point802* %0 to i8* + %6 = bitcast %struct.point802* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo803(%struct.point803* noalias sret(%struct.point803) align 4 %0, %struct.point803* noundef byval(%struct.point803) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point803* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point803* %0 to i8* + %6 = bitcast %struct.point803* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo804(%struct.point804* noalias sret(%struct.point804) align 4 %0, %struct.point804* noundef byval(%struct.point804) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point804* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point804* %0 to i8* + %6 = bitcast %struct.point804* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo805(%struct.point805* noalias sret(%struct.point805) align 4 %0, %struct.point805* noundef byval(%struct.point805) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point805* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point805* %0 to i8* + %6 = bitcast %struct.point805* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo806(%struct.point806* noalias sret(%struct.point806) align 4 %0, %struct.point806* noundef byval(%struct.point806) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point806* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point806* %0 to i8* + %6 = bitcast %struct.point806* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo807(%struct.point807* noalias sret(%struct.point807) align 4 %0, %struct.point807* noundef byval(%struct.point807) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point807* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point807* %0 to i8* + %6 = bitcast %struct.point807* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo808(%struct.point808* noalias sret(%struct.point808) align 4 %0, %struct.point808* noundef byval(%struct.point808) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point808* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point808* %0 to i8* + %6 = bitcast %struct.point808* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo809(%struct.point809* noalias sret(%struct.point809) align 4 %0, %struct.point809* noundef byval(%struct.point809) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point809* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point809* %0 to i8* + %6 = bitcast %struct.point809* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo810(%struct.point810* noalias sret(%struct.point810) align 4 %0, %struct.point810* noundef byval(%struct.point810) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point810* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point810* %0 to i8* + %6 = bitcast %struct.point810* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo811(%struct.point811* noalias sret(%struct.point811) align 4 %0, %struct.point811* noundef byval(%struct.point811) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point811* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point811* %0 to i8* + %6 = bitcast %struct.point811* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo812(%struct.point812* noalias sret(%struct.point812) align 4 %0, %struct.point812* noundef byval(%struct.point812) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point812* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point812* %0 to i8* + %6 = bitcast %struct.point812* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo813(%struct.point813* noalias sret(%struct.point813) align 4 %0, %struct.point813* noundef byval(%struct.point813) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point813* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point813* %0 to i8* + %6 = bitcast %struct.point813* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo814(%struct.point814* noalias sret(%struct.point814) align 4 %0, %struct.point814* noundef byval(%struct.point814) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point814* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point814* %0 to i8* + %6 = bitcast %struct.point814* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo815(%struct.point815* noalias sret(%struct.point815) align 4 %0, %struct.point815* noundef byval(%struct.point815) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point815* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point815* %0 to i8* + %6 = bitcast %struct.point815* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo816(%struct.point816* noalias sret(%struct.point816) align 4 %0, %struct.point816* noundef byval(%struct.point816) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point816* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point816* %0 to i8* + %6 = bitcast %struct.point816* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo817(%struct.point817* noalias sret(%struct.point817) align 4 %0, %struct.point817* noundef byval(%struct.point817) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point817* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point817* %0 to i8* + %6 = bitcast %struct.point817* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo818(%struct.point818* noalias sret(%struct.point818) align 4 %0, %struct.point818* noundef byval(%struct.point818) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point818* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point818* %0 to i8* + %6 = bitcast %struct.point818* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo819(%struct.point819* noalias sret(%struct.point819) align 4 %0, %struct.point819* noundef byval(%struct.point819) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point819* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point819* %0 to i8* + %6 = bitcast %struct.point819* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo820(%struct.point820* noalias sret(%struct.point820) align 4 %0, %struct.point820* noundef byval(%struct.point820) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point820* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point820* %0 to i8* + %6 = bitcast %struct.point820* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo821(%struct.point821* noalias sret(%struct.point821) align 4 %0, %struct.point821* noundef byval(%struct.point821) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point821* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point821* %0 to i8* + %6 = bitcast %struct.point821* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo822(%struct.point822* noalias sret(%struct.point822) align 4 %0, %struct.point822* noundef byval(%struct.point822) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point822* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point822* %0 to i8* + %6 = bitcast %struct.point822* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo823(%struct.point823* noalias sret(%struct.point823) align 4 %0, %struct.point823* noundef byval(%struct.point823) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point823* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point823* %0 to i8* + %6 = bitcast %struct.point823* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo824(%struct.point824* noalias sret(%struct.point824) align 4 %0, %struct.point824* noundef byval(%struct.point824) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point824* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point824* %0 to i8* + %6 = bitcast %struct.point824* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo825(%struct.point825* noalias sret(%struct.point825) align 4 %0, %struct.point825* noundef byval(%struct.point825) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point825* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point825* %0 to i8* + %6 = bitcast %struct.point825* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo826(%struct.point826* noalias sret(%struct.point826) align 4 %0, %struct.point826* noundef byval(%struct.point826) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point826* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point826* %0 to i8* + %6 = bitcast %struct.point826* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo827(%struct.point827* noalias sret(%struct.point827) align 4 %0, %struct.point827* noundef byval(%struct.point827) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point827* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point827* %0 to i8* + %6 = bitcast %struct.point827* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo828(%struct.point828* noalias sret(%struct.point828) align 4 %0, %struct.point828* noundef byval(%struct.point828) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point828* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point828* %0 to i8* + %6 = bitcast %struct.point828* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo829(%struct.point829* noalias sret(%struct.point829) align 4 %0, %struct.point829* noundef byval(%struct.point829) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point829* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point829* %0 to i8* + %6 = bitcast %struct.point829* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo830(%struct.point830* noalias sret(%struct.point830) align 4 %0, %struct.point830* noundef byval(%struct.point830) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point830* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point830* %0 to i8* + %6 = bitcast %struct.point830* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo831(%struct.point831* noalias sret(%struct.point831) align 4 %0, %struct.point831* noundef byval(%struct.point831) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point831* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point831* %0 to i8* + %6 = bitcast %struct.point831* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo832(%struct.point832* noalias sret(%struct.point832) align 4 %0, %struct.point832* noundef byval(%struct.point832) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point832* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point832* %0 to i8* + %6 = bitcast %struct.point832* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo833(%struct.point833* noalias sret(%struct.point833) align 4 %0, %struct.point833* noundef byval(%struct.point833) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point833* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point833* %0 to i8* + %6 = bitcast %struct.point833* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo834(%struct.point834* noalias sret(%struct.point834) align 4 %0, %struct.point834* noundef byval(%struct.point834) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point834* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point834* %0 to i8* + %6 = bitcast %struct.point834* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo835(%struct.point835* noalias sret(%struct.point835) align 4 %0, %struct.point835* noundef byval(%struct.point835) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point835* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point835* %0 to i8* + %6 = bitcast %struct.point835* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo836(%struct.point836* noalias sret(%struct.point836) align 4 %0, %struct.point836* noundef byval(%struct.point836) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point836* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point836* %0 to i8* + %6 = bitcast %struct.point836* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo837(%struct.point837* noalias sret(%struct.point837) align 4 %0, %struct.point837* noundef byval(%struct.point837) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point837* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point837* %0 to i8* + %6 = bitcast %struct.point837* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo838(%struct.point838* noalias sret(%struct.point838) align 4 %0, %struct.point838* noundef byval(%struct.point838) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point838* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point838* %0 to i8* + %6 = bitcast %struct.point838* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo839(%struct.point839* noalias sret(%struct.point839) align 4 %0, %struct.point839* noundef byval(%struct.point839) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point839* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point839* %0 to i8* + %6 = bitcast %struct.point839* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo840(%struct.point840* noalias sret(%struct.point840) align 4 %0, %struct.point840* noundef byval(%struct.point840) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point840* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point840* %0 to i8* + %6 = bitcast %struct.point840* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo841(%struct.point841* noalias sret(%struct.point841) align 4 %0, %struct.point841* noundef byval(%struct.point841) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point841* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point841* %0 to i8* + %6 = bitcast %struct.point841* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo842(%struct.point842* noalias sret(%struct.point842) align 4 %0, %struct.point842* noundef byval(%struct.point842) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point842* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point842* %0 to i8* + %6 = bitcast %struct.point842* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo843(%struct.point843* noalias sret(%struct.point843) align 4 %0, %struct.point843* noundef byval(%struct.point843) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point843* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point843* %0 to i8* + %6 = bitcast %struct.point843* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo844(%struct.point844* noalias sret(%struct.point844) align 4 %0, %struct.point844* noundef byval(%struct.point844) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point844* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point844* %0 to i8* + %6 = bitcast %struct.point844* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef byval(%struct.point845) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point845* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef byval(%struct.point846) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point846* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo847(%struct.point847* noalias sret(%struct.point847) align 4 %0, %struct.point847* noundef byval(%struct.point847) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point847* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point847* %0 to i8* + %6 = bitcast %struct.point847* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo848(%struct.point848* noalias sret(%struct.point848) align 4 %0, %struct.point848* noundef byval(%struct.point848) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point848* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point848* %0 to i8* + %6 = bitcast %struct.point848* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo849(%struct.point849* noalias sret(%struct.point849) align 4 %0, %struct.point849* noundef byval(%struct.point849) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point849* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point849* %0 to i8* + %6 = bitcast %struct.point849* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef byval(%struct.point850) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point850* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef byval(%struct.point851) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point851* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo852(%struct.point852* noalias sret(%struct.point852) align 4 %0, %struct.point852* noundef byval(%struct.point852) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point852* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point852* %0 to i8* + %6 = bitcast %struct.point852* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef byval(%struct.point853) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point853* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef byval(%struct.point854) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point854* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef byval(%struct.point855) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point855* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef byval(%struct.point856) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point856* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo857(%struct.point857* noalias sret(%struct.point857) align 4 %0, %struct.point857* noundef byval(%struct.point857) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point857* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point857* %0 to i8* + %6 = bitcast %struct.point857* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef byval(%struct.point858) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point858* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef byval(%struct.point859) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point859* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef byval(%struct.point860) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point860* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef byval(%struct.point861) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point861* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo862(%struct.point862* noalias sret(%struct.point862) align 4 %0, %struct.point862* noundef byval(%struct.point862) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point862* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point862* %0 to i8* + %6 = bitcast %struct.point862* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo863(%struct.point863* noalias sret(%struct.point863) align 4 %0, %struct.point863* noundef byval(%struct.point863) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point863* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point863* %0 to i8* + %6 = bitcast %struct.point863* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo864(%struct.point864* noalias sret(%struct.point864) align 4 %0, %struct.point864* noundef byval(%struct.point864) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point864* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point864* %0 to i8* + %6 = bitcast %struct.point864* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo865(%struct.point865* noalias sret(%struct.point865) align 4 %0, %struct.point865* noundef byval(%struct.point865) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point865* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point865* %0 to i8* + %6 = bitcast %struct.point865* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef byval(%struct.point866) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point866* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef byval(%struct.point867) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point867* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo868(%struct.point868* noalias sret(%struct.point868) align 4 %0, %struct.point868* noundef byval(%struct.point868) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point868* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point868* %0 to i8* + %6 = bitcast %struct.point868* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo869(%struct.point869* noalias sret(%struct.point869) align 4 %0, %struct.point869* noundef byval(%struct.point869) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point869* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point869* %0 to i8* + %6 = bitcast %struct.point869* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo870(%struct.point870* noalias sret(%struct.point870) align 4 %0, %struct.point870* noundef byval(%struct.point870) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point870* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point870* %0 to i8* + %6 = bitcast %struct.point870* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef byval(%struct.point871) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point871* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef byval(%struct.point872) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point872* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo873(%struct.point873* noalias sret(%struct.point873) align 4 %0, %struct.point873* noundef byval(%struct.point873) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point873* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point873* %0 to i8* + %6 = bitcast %struct.point873* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef byval(%struct.point874) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point874* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef byval(%struct.point875) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point875* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef byval(%struct.point876) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point876* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef byval(%struct.point877) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point877* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo878(%struct.point878* noalias sret(%struct.point878) align 4 %0, %struct.point878* noundef byval(%struct.point878) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point878* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point878* %0 to i8* + %6 = bitcast %struct.point878* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef byval(%struct.point879) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point879* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef byval(%struct.point880) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point880* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef byval(%struct.point881) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point881* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef byval(%struct.point882) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point882* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo883(%struct.point883* noalias sret(%struct.point883) align 4 %0, %struct.point883* noundef byval(%struct.point883) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point883* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point883* %0 to i8* + %6 = bitcast %struct.point883* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo884(%struct.point884* noalias sret(%struct.point884) align 4 %0, %struct.point884* noundef byval(%struct.point884) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point884* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point884* %0 to i8* + %6 = bitcast %struct.point884* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo885(%struct.point885* noalias sret(%struct.point885) align 4 %0, %struct.point885* noundef byval(%struct.point885) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point885* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point885* %0 to i8* + %6 = bitcast %struct.point885* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo886(%struct.point886* noalias sret(%struct.point886) align 4 %0, %struct.point886* noundef byval(%struct.point886) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point886* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point886* %0 to i8* + %6 = bitcast %struct.point886* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo887(%struct.point887* noalias sret(%struct.point887) align 4 %0, %struct.point887* noundef byval(%struct.point887) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point887* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point887* %0 to i8* + %6 = bitcast %struct.point887* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo888(%struct.point888* noalias sret(%struct.point888) align 4 %0, %struct.point888* noundef byval(%struct.point888) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point888* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point888* %0 to i8* + %6 = bitcast %struct.point888* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo889(%struct.point889* noalias sret(%struct.point889) align 4 %0, %struct.point889* noundef byval(%struct.point889) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point889* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point889* %0 to i8* + %6 = bitcast %struct.point889* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo890(%struct.point890* noalias sret(%struct.point890) align 4 %0, %struct.point890* noundef byval(%struct.point890) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point890* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point890* %0 to i8* + %6 = bitcast %struct.point890* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo891(%struct.point891* noalias sret(%struct.point891) align 4 %0, %struct.point891* noundef byval(%struct.point891) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point891* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point891* %0 to i8* + %6 = bitcast %struct.point891* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo892(%struct.point892* noalias sret(%struct.point892) align 4 %0, %struct.point892* noundef byval(%struct.point892) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point892* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point892* %0 to i8* + %6 = bitcast %struct.point892* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo893(%struct.point893* noalias sret(%struct.point893) align 4 %0, %struct.point893* noundef byval(%struct.point893) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point893* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point893* %0 to i8* + %6 = bitcast %struct.point893* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo894(%struct.point894* noalias sret(%struct.point894) align 4 %0, %struct.point894* noundef byval(%struct.point894) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point894* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point894* %0 to i8* + %6 = bitcast %struct.point894* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo895(%struct.point895* noalias sret(%struct.point895) align 4 %0, %struct.point895* noundef byval(%struct.point895) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point895* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point895* %0 to i8* + %6 = bitcast %struct.point895* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo896(%struct.point896* noalias sret(%struct.point896) align 4 %0, %struct.point896* noundef byval(%struct.point896) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point896* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point896* %0 to i8* + %6 = bitcast %struct.point896* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo897(%struct.point897* noalias sret(%struct.point897) align 4 %0, %struct.point897* noundef byval(%struct.point897) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point897* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point897* %0 to i8* + %6 = bitcast %struct.point897* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo898(%struct.point898* noalias sret(%struct.point898) align 4 %0, %struct.point898* noundef byval(%struct.point898) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point898* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point898* %0 to i8* + %6 = bitcast %struct.point898* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo899(%struct.point899* noalias sret(%struct.point899) align 4 %0, %struct.point899* noundef byval(%struct.point899) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point899* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point899* %0 to i8* + %6 = bitcast %struct.point899* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo900(%struct.point900* noalias sret(%struct.point900) align 4 %0, %struct.point900* noundef byval(%struct.point900) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point900* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point900* %0 to i8* + %6 = bitcast %struct.point900* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo901(%struct.point901* noalias sret(%struct.point901) align 4 %0, %struct.point901* noundef byval(%struct.point901) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point901* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point901* %0 to i8* + %6 = bitcast %struct.point901* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo902(%struct.point902* noalias sret(%struct.point902) align 4 %0, %struct.point902* noundef byval(%struct.point902) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point902* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point902* %0 to i8* + %6 = bitcast %struct.point902* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo903(%struct.point903* noalias sret(%struct.point903) align 4 %0, %struct.point903* noundef byval(%struct.point903) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point903* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point903* %0 to i8* + %6 = bitcast %struct.point903* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo904(%struct.point904* noalias sret(%struct.point904) align 4 %0, %struct.point904* noundef byval(%struct.point904) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point904* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point904* %0 to i8* + %6 = bitcast %struct.point904* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo905(%struct.point905* noalias sret(%struct.point905) align 4 %0, %struct.point905* noundef byval(%struct.point905) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point905* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point905* %0 to i8* + %6 = bitcast %struct.point905* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo906(%struct.point906* noalias sret(%struct.point906) align 4 %0, %struct.point906* noundef byval(%struct.point906) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point906* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point906* %0 to i8* + %6 = bitcast %struct.point906* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo907(%struct.point907* noalias sret(%struct.point907) align 4 %0, %struct.point907* noundef byval(%struct.point907) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point907* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point907* %0 to i8* + %6 = bitcast %struct.point907* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo908(%struct.point908* noalias sret(%struct.point908) align 4 %0, %struct.point908* noundef byval(%struct.point908) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point908* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point908* %0 to i8* + %6 = bitcast %struct.point908* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo909(%struct.point909* noalias sret(%struct.point909) align 4 %0, %struct.point909* noundef byval(%struct.point909) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point909* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point909* %0 to i8* + %6 = bitcast %struct.point909* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo910(%struct.point910* noalias sret(%struct.point910) align 4 %0, %struct.point910* noundef byval(%struct.point910) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point910* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point910* %0 to i8* + %6 = bitcast %struct.point910* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo911(%struct.point911* noalias sret(%struct.point911) align 4 %0, %struct.point911* noundef byval(%struct.point911) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point911* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point911* %0 to i8* + %6 = bitcast %struct.point911* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo912(%struct.point912* noalias sret(%struct.point912) align 4 %0, %struct.point912* noundef byval(%struct.point912) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point912* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point912* %0 to i8* + %6 = bitcast %struct.point912* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo913(%struct.point913* noalias sret(%struct.point913) align 4 %0, %struct.point913* noundef byval(%struct.point913) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point913* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point913* %0 to i8* + %6 = bitcast %struct.point913* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo914(%struct.point914* noalias sret(%struct.point914) align 4 %0, %struct.point914* noundef byval(%struct.point914) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point914* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point914* %0 to i8* + %6 = bitcast %struct.point914* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo915(%struct.point915* noalias sret(%struct.point915) align 4 %0, %struct.point915* noundef byval(%struct.point915) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point915* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point915* %0 to i8* + %6 = bitcast %struct.point915* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo916(%struct.point916* noalias sret(%struct.point916) align 4 %0, %struct.point916* noundef byval(%struct.point916) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point916* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point916* %0 to i8* + %6 = bitcast %struct.point916* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo917(%struct.point917* noalias sret(%struct.point917) align 4 %0, %struct.point917* noundef byval(%struct.point917) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point917* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point917* %0 to i8* + %6 = bitcast %struct.point917* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo918(%struct.point918* noalias sret(%struct.point918) align 4 %0, %struct.point918* noundef byval(%struct.point918) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point918* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point918* %0 to i8* + %6 = bitcast %struct.point918* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo919(%struct.point919* noalias sret(%struct.point919) align 4 %0, %struct.point919* noundef byval(%struct.point919) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point919* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point919* %0 to i8* + %6 = bitcast %struct.point919* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo920(%struct.point920* noalias sret(%struct.point920) align 4 %0, %struct.point920* noundef byval(%struct.point920) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point920* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point920* %0 to i8* + %6 = bitcast %struct.point920* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo921(%struct.point921* noalias sret(%struct.point921) align 4 %0, %struct.point921* noundef byval(%struct.point921) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point921* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point921* %0 to i8* + %6 = bitcast %struct.point921* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo922(%struct.point922* noalias sret(%struct.point922) align 4 %0, %struct.point922* noundef byval(%struct.point922) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point922* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point922* %0 to i8* + %6 = bitcast %struct.point922* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo923(%struct.point923* noalias sret(%struct.point923) align 4 %0, %struct.point923* noundef byval(%struct.point923) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point923* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point923* %0 to i8* + %6 = bitcast %struct.point923* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo924(%struct.point924* noalias sret(%struct.point924) align 4 %0, %struct.point924* noundef byval(%struct.point924) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point924* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point924* %0 to i8* + %6 = bitcast %struct.point924* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo925(%struct.point925* noalias sret(%struct.point925) align 4 %0, %struct.point925* noundef byval(%struct.point925) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point925* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point925* %0 to i8* + %6 = bitcast %struct.point925* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo926(%struct.point926* noalias sret(%struct.point926) align 4 %0, %struct.point926* noundef byval(%struct.point926) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point926* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point926* %0 to i8* + %6 = bitcast %struct.point926* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo927(%struct.point927* noalias sret(%struct.point927) align 4 %0, %struct.point927* noundef byval(%struct.point927) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point927* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point927* %0 to i8* + %6 = bitcast %struct.point927* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo928(%struct.point928* noalias sret(%struct.point928) align 4 %0, %struct.point928* noundef byval(%struct.point928) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point928* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point928* %0 to i8* + %6 = bitcast %struct.point928* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef byval(%struct.point929) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point929* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef byval(%struct.point930) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point930* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo931(%struct.point931* noalias sret(%struct.point931) align 4 %0, %struct.point931* noundef byval(%struct.point931) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point931* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point931* %0 to i8* + %6 = bitcast %struct.point931* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo932(%struct.point932* noalias sret(%struct.point932) align 4 %0, %struct.point932* noundef byval(%struct.point932) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point932* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point932* %0 to i8* + %6 = bitcast %struct.point932* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo933(%struct.point933* noalias sret(%struct.point933) align 4 %0, %struct.point933* noundef byval(%struct.point933) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point933* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point933* %0 to i8* + %6 = bitcast %struct.point933* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef byval(%struct.point934) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point934* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef byval(%struct.point935) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point935* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo936(%struct.point936* noalias sret(%struct.point936) align 4 %0, %struct.point936* noundef byval(%struct.point936) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point936* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point936* %0 to i8* + %6 = bitcast %struct.point936* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef byval(%struct.point937) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point937* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef byval(%struct.point938) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point938* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef byval(%struct.point939) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point939* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef byval(%struct.point940) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point940* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo941(%struct.point941* noalias sret(%struct.point941) align 4 %0, %struct.point941* noundef byval(%struct.point941) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point941* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point941* %0 to i8* + %6 = bitcast %struct.point941* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef byval(%struct.point942) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point942* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef byval(%struct.point943) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point943* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef byval(%struct.point944) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point944* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef byval(%struct.point945) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point945* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo946(%struct.point946* noalias sret(%struct.point946) align 4 %0, %struct.point946* noundef byval(%struct.point946) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point946* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point946* %0 to i8* + %6 = bitcast %struct.point946* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo947(%struct.point947* noalias sret(%struct.point947) align 4 %0, %struct.point947* noundef byval(%struct.point947) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point947* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point947* %0 to i8* + %6 = bitcast %struct.point947* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo948(%struct.point948* noalias sret(%struct.point948) align 4 %0, %struct.point948* noundef byval(%struct.point948) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point948* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point948* %0 to i8* + %6 = bitcast %struct.point948* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo949(%struct.point949* noalias sret(%struct.point949) align 4 %0, %struct.point949* noundef byval(%struct.point949) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point949* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point949* %0 to i8* + %6 = bitcast %struct.point949* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef byval(%struct.point950) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point950* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef byval(%struct.point951) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point951* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo952(%struct.point952* noalias sret(%struct.point952) align 4 %0, %struct.point952* noundef byval(%struct.point952) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point952* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point952* %0 to i8* + %6 = bitcast %struct.point952* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo953(%struct.point953* noalias sret(%struct.point953) align 4 %0, %struct.point953* noundef byval(%struct.point953) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point953* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point953* %0 to i8* + %6 = bitcast %struct.point953* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo954(%struct.point954* noalias sret(%struct.point954) align 4 %0, %struct.point954* noundef byval(%struct.point954) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point954* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point954* %0 to i8* + %6 = bitcast %struct.point954* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef byval(%struct.point955) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point955* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef byval(%struct.point956) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point956* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo957(%struct.point957* noalias sret(%struct.point957) align 4 %0, %struct.point957* noundef byval(%struct.point957) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point957* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point957* %0 to i8* + %6 = bitcast %struct.point957* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef byval(%struct.point958) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point958* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef byval(%struct.point959) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point959* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef byval(%struct.point960) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point960* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef byval(%struct.point961) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point961* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo962(%struct.point962* noalias sret(%struct.point962) align 4 %0, %struct.point962* noundef byval(%struct.point962) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point962* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point962* %0 to i8* + %6 = bitcast %struct.point962* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef byval(%struct.point963) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point963* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef byval(%struct.point964) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point964* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef byval(%struct.point965) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point965* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef byval(%struct.point966) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point966* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo967(%struct.point967* noalias sret(%struct.point967) align 4 %0, %struct.point967* noundef byval(%struct.point967) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point967* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point967* %0 to i8* + %6 = bitcast %struct.point967* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo968(%struct.point968* noalias sret(%struct.point968) align 4 %0, %struct.point968* noundef byval(%struct.point968) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point968* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point968* %0 to i8* + %6 = bitcast %struct.point968* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo969(%struct.point969* noalias sret(%struct.point969) align 4 %0, %struct.point969* noundef byval(%struct.point969) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point969* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point969* %0 to i8* + %6 = bitcast %struct.point969* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo970(%struct.point970* noalias sret(%struct.point970) align 4 %0, %struct.point970* noundef byval(%struct.point970) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point970* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point970* %0 to i8* + %6 = bitcast %struct.point970* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo971(%struct.point971* noalias sret(%struct.point971) align 4 %0, %struct.point971* noundef byval(%struct.point971) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point971* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point971* %0 to i8* + %6 = bitcast %struct.point971* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo972(%struct.point972* noalias sret(%struct.point972) align 4 %0, %struct.point972* noundef byval(%struct.point972) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point972* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point972* %0 to i8* + %6 = bitcast %struct.point972* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo973(%struct.point973* noalias sret(%struct.point973) align 4 %0, %struct.point973* noundef byval(%struct.point973) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point973* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point973* %0 to i8* + %6 = bitcast %struct.point973* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo974(%struct.point974* noalias sret(%struct.point974) align 4 %0, %struct.point974* noundef byval(%struct.point974) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point974* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point974* %0 to i8* + %6 = bitcast %struct.point974* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo975(%struct.point975* noalias sret(%struct.point975) align 4 %0, %struct.point975* noundef byval(%struct.point975) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point975* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point975* %0 to i8* + %6 = bitcast %struct.point975* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo976(%struct.point976* noalias sret(%struct.point976) align 4 %0, %struct.point976* noundef byval(%struct.point976) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point976* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point976* %0 to i8* + %6 = bitcast %struct.point976* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo977(%struct.point977* noalias sret(%struct.point977) align 4 %0, %struct.point977* noundef byval(%struct.point977) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point977* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point977* %0 to i8* + %6 = bitcast %struct.point977* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo978(%struct.point978* noalias sret(%struct.point978) align 4 %0, %struct.point978* noundef byval(%struct.point978) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point978* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point978* %0 to i8* + %6 = bitcast %struct.point978* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef byval(%struct.point979) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point979* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef byval(%struct.point980) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point980* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef byval(%struct.point981) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point981* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef byval(%struct.point982) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point982* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo983(%struct.point983* noalias sret(%struct.point983) align 4 %0, %struct.point983* noundef byval(%struct.point983) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point983* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point983* %0 to i8* + %6 = bitcast %struct.point983* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef byval(%struct.point984) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point984* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef byval(%struct.point985) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point985* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef byval(%struct.point986) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point986* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef byval(%struct.point987) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point987* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo988(%struct.point988* noalias sret(%struct.point988) align 4 %0, %struct.point988* noundef byval(%struct.point988) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point988* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point988* %0 to i8* + %6 = bitcast %struct.point988* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo989(%struct.point989* noalias sret(%struct.point989) align 4 %0, %struct.point989* noundef byval(%struct.point989) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point989* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point989* %0 to i8* + %6 = bitcast %struct.point989* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo990(%struct.point990* noalias sret(%struct.point990) align 4 %0, %struct.point990* noundef byval(%struct.point990) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point990* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point990* %0 to i8* + %6 = bitcast %struct.point990* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo991(%struct.point991* noalias sret(%struct.point991) align 4 %0, %struct.point991* noundef byval(%struct.point991) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point991* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point991* %0 to i8* + %6 = bitcast %struct.point991* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo992(%struct.point992* noalias sret(%struct.point992) align 4 %0, %struct.point992* noundef byval(%struct.point992) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point992* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point992* %0 to i8* + %6 = bitcast %struct.point992* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo993(%struct.point993* noalias sret(%struct.point993) align 4 %0, %struct.point993* noundef byval(%struct.point993) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point993* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point993* %0 to i8* + %6 = bitcast %struct.point993* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo994(%struct.point994* noalias sret(%struct.point994) align 4 %0, %struct.point994* noundef byval(%struct.point994) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point994* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point994* %0 to i8* + %6 = bitcast %struct.point994* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo995(%struct.point995* noalias sret(%struct.point995) align 4 %0, %struct.point995* noundef byval(%struct.point995) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point995* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point995* %0 to i8* + %6 = bitcast %struct.point995* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo996(%struct.point996* noalias sret(%struct.point996) align 4 %0, %struct.point996* noundef byval(%struct.point996) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point996* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point996* %0 to i8* + %6 = bitcast %struct.point996* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo997(%struct.point997* noalias sret(%struct.point997) align 4 %0, %struct.point997* noundef byval(%struct.point997) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point997* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point997* %0 to i8* + %6 = bitcast %struct.point997* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo998(%struct.point998* noalias sret(%struct.point998) align 4 %0, %struct.point998* noundef byval(%struct.point998) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point998* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point998* %0 to i8* + %6 = bitcast %struct.point998* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo999(%struct.point999* noalias sret(%struct.point999) align 4 %0, %struct.point999* noundef byval(%struct.point999) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point999* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point999* %0 to i8* + %6 = bitcast %struct.point999* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef byval(%struct.point1000) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1000* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef byval(%struct.point1001) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1001* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef byval(%struct.point1002) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1002* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef byval(%struct.point1003) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1003* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1004(%struct.point1004* noalias sret(%struct.point1004) align 4 %0, %struct.point1004* noundef byval(%struct.point1004) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1004* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1004* %0 to i8* + %6 = bitcast %struct.point1004* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef byval(%struct.point1005) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1005* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef byval(%struct.point1006) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1006* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef byval(%struct.point1007) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1007* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef byval(%struct.point1008) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1008* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1009(%struct.point1009* noalias sret(%struct.point1009) align 4 %0, float %1, i32 %2, i32 %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point1009, align 4 + %7 = bitcast %struct.point1009* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point1009, %struct.point1009* %6, i32 0, i32 0 + store float %1, float* %8, align 4 + %9 = getelementptr inbounds %struct.point1009, %struct.point1009* %6, i32 0, i32 1 + store i32 %2, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point1009, %struct.point1009* %6, i32 0, i32 2 + store i32 %3, i32* %10, align 4 + %11 = bitcast %struct.point1009* %0 to i8* + %12 = bitcast %struct.point1009* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1010(%struct.point1010* noalias sret(%struct.point1010) align 4 %0, %struct.point1010* noundef byval(%struct.point1010) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1010* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1010* %0 to i8* + %6 = bitcast %struct.point1010* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1011(%struct.point1011* noalias sret(%struct.point1011) align 4 %0, %struct.point1011* noundef byval(%struct.point1011) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1011* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1011* %0 to i8* + %6 = bitcast %struct.point1011* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1012(%struct.point1012* noalias sret(%struct.point1012) align 4 %0, %struct.point1012* noundef byval(%struct.point1012) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1012* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1012* %0 to i8* + %6 = bitcast %struct.point1012* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef byval(%struct.point1013) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1013* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef byval(%struct.point1014) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1014* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1015(%struct.point1015* noalias sret(%struct.point1015) align 4 %0, %struct.point1015* noundef byval(%struct.point1015) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1015* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1015* %0 to i8* + %6 = bitcast %struct.point1015* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1016(%struct.point1016* noalias sret(%struct.point1016) align 4 %0, %struct.point1016* noundef byval(%struct.point1016) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1016* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1016* %0 to i8* + %6 = bitcast %struct.point1016* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1017(%struct.point1017* noalias sret(%struct.point1017) align 4 %0, %struct.point1017* noundef byval(%struct.point1017) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1017* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1017* %0 to i8* + %6 = bitcast %struct.point1017* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef byval(%struct.point1018) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1018* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef byval(%struct.point1019) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1019* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1020(%struct.point1020* noalias sret(%struct.point1020) align 4 %0, float %1, i32 %2, i32 %3, i32 %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point1020, align 4 + %8 = bitcast %struct.point1020* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point1020, %struct.point1020* %7, i32 0, i32 0 + store float %1, float* %9, align 4 + %10 = getelementptr inbounds %struct.point1020, %struct.point1020* %7, i32 0, i32 1 + store i32 %2, i32* %10, align 4 + %11 = getelementptr inbounds %struct.point1020, %struct.point1020* %7, i32 0, i32 2 + store i32 %3, i32* %11, align 4 + %12 = getelementptr inbounds %struct.point1020, %struct.point1020* %7, i32 0, i32 3 + store i32 %4, i32* %12, align 4 + %13 = bitcast %struct.point1020* %0 to i8* + %14 = bitcast %struct.point1020* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef byval(%struct.point1021) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1021* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef byval(%struct.point1022) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1022* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef byval(%struct.point1023) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1023* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef byval(%struct.point1024) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1024* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1025(%struct.point1025* noalias sret(%struct.point1025) align 4 %0, float %1, i32 %2, i32 %3, float %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point1025, align 4 + %8 = bitcast %struct.point1025* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point1025, %struct.point1025* %7, i32 0, i32 0 + store float %1, float* %9, align 4 + %10 = getelementptr inbounds %struct.point1025, %struct.point1025* %7, i32 0, i32 1 + store i32 %2, i32* %10, align 4 + %11 = getelementptr inbounds %struct.point1025, %struct.point1025* %7, i32 0, i32 2 + store i32 %3, i32* %11, align 4 + %12 = getelementptr inbounds %struct.point1025, %struct.point1025* %7, i32 0, i32 3 + store float %4, float* %12, align 4 + %13 = bitcast %struct.point1025* %0 to i8* + %14 = bitcast %struct.point1025* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef byval(%struct.point1026) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1026* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef byval(%struct.point1027) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1027* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef byval(%struct.point1028) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1028* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef byval(%struct.point1029) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1029* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1030(%struct.point1030* noalias sret(%struct.point1030) align 4 %0, float %1, i32 %2, float %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point1030, align 4 + %7 = bitcast %struct.point1030* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point1030, %struct.point1030* %6, i32 0, i32 0 + store float %1, float* %8, align 4 + %9 = getelementptr inbounds %struct.point1030, %struct.point1030* %6, i32 0, i32 1 + store i32 %2, i32* %9, align 4 + %10 = getelementptr inbounds %struct.point1030, %struct.point1030* %6, i32 0, i32 2 + store float %3, float* %10, align 4 + %11 = bitcast %struct.point1030* %0 to i8* + %12 = bitcast %struct.point1030* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1031(%struct.point1031* noalias sret(%struct.point1031) align 4 %0, %struct.point1031* noundef byval(%struct.point1031) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1031* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1031* %0 to i8* + %6 = bitcast %struct.point1031* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1032(%struct.point1032* noalias sret(%struct.point1032) align 4 %0, %struct.point1032* noundef byval(%struct.point1032) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1032* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1032* %0 to i8* + %6 = bitcast %struct.point1032* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1033(%struct.point1033* noalias sret(%struct.point1033) align 4 %0, %struct.point1033* noundef byval(%struct.point1033) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1033* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1033* %0 to i8* + %6 = bitcast %struct.point1033* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef byval(%struct.point1034) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1034* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef byval(%struct.point1035) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1035* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1036(%struct.point1036* noalias sret(%struct.point1036) align 4 %0, %struct.point1036* noundef byval(%struct.point1036) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1036* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1036* %0 to i8* + %6 = bitcast %struct.point1036* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1037(%struct.point1037* noalias sret(%struct.point1037) align 4 %0, %struct.point1037* noundef byval(%struct.point1037) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1037* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1037* %0 to i8* + %6 = bitcast %struct.point1037* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1038(%struct.point1038* noalias sret(%struct.point1038) align 4 %0, %struct.point1038* noundef byval(%struct.point1038) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1038* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1038* %0 to i8* + %6 = bitcast %struct.point1038* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef byval(%struct.point1039) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1039* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef byval(%struct.point1040) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1040* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1041(%struct.point1041* noalias sret(%struct.point1041) align 4 %0, float %1, i32 %2, float %3, i32 %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point1041, align 4 + %8 = bitcast %struct.point1041* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point1041, %struct.point1041* %7, i32 0, i32 0 + store float %1, float* %9, align 4 + %10 = getelementptr inbounds %struct.point1041, %struct.point1041* %7, i32 0, i32 1 + store i32 %2, i32* %10, align 4 + %11 = getelementptr inbounds %struct.point1041, %struct.point1041* %7, i32 0, i32 2 + store float %3, float* %11, align 4 + %12 = getelementptr inbounds %struct.point1041, %struct.point1041* %7, i32 0, i32 3 + store i32 %4, i32* %12, align 4 + %13 = bitcast %struct.point1041* %0 to i8* + %14 = bitcast %struct.point1041* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef byval(%struct.point1042) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1042* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef byval(%struct.point1043) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1043* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef byval(%struct.point1044) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1044* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef byval(%struct.point1045) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1045* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1046(%struct.point1046* noalias sret(%struct.point1046) align 4 %0, float %1, i32 %2, float %3, float %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point1046, align 4 + %8 = bitcast %struct.point1046* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point1046, %struct.point1046* %7, i32 0, i32 0 + store float %1, float* %9, align 4 + %10 = getelementptr inbounds %struct.point1046, %struct.point1046* %7, i32 0, i32 1 + store i32 %2, i32* %10, align 4 + %11 = getelementptr inbounds %struct.point1046, %struct.point1046* %7, i32 0, i32 2 + store float %3, float* %11, align 4 + %12 = getelementptr inbounds %struct.point1046, %struct.point1046* %7, i32 0, i32 3 + store float %4, float* %12, align 4 + %13 = bitcast %struct.point1046* %0 to i8* + %14 = bitcast %struct.point1046* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef byval(%struct.point1047) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1047* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef byval(%struct.point1048) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1048* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef byval(%struct.point1049) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1049* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef byval(%struct.point1050) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point1050* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/i386/struct_uintptr.ll b/internal/cabi/_testdata/arch/i386/struct_uintptr.ll new file mode 100644 index 00000000..5cee2fc0 --- /dev/null +++ b/internal/cabi/_testdata/arch/i386/struct_uintptr.ll @@ -0,0 +1,286 @@ +; ModuleID = '../../wrap/struct_uintptr.c' +source_filename = "../../wrap/struct_uintptr.c" +target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" +target triple = "i386-unknown-linux-gnu" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo1(%struct.point1* noalias sret(%struct.point1) align 4 %0, i8* %1) #0 { + %3 = alloca i8*, align 4 + %4 = alloca %struct.point1, align 4 + %5 = bitcast %struct.point1* %0 to i8* + store i8* %5, i8** %3, align 4 + %6 = getelementptr inbounds %struct.point1, %struct.point1* %4, i32 0, i32 0 + store i8* %1, i8** %6, align 4 + %7 = bitcast %struct.point1* %0 to i8* + %8 = bitcast %struct.point1* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, i8* %1, i8* %2) #0 { + %4 = alloca i8*, align 4 + %5 = alloca %struct.point2, align 4 + %6 = bitcast %struct.point2* %0 to i8* + store i8* %6, i8** %4, align 4 + %7 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 0 + store i8* %1, i8** %7, align 4 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %5, i32 0, i32 1 + store i8* %2, i8** %8, align 4 + %9 = bitcast %struct.point2* %0 to i8* + %10 = bitcast %struct.point2* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, i8* %1, i8* %2, i8* %3) #0 { + %5 = alloca i8*, align 4 + %6 = alloca %struct.point3, align 4 + %7 = bitcast %struct.point3* %0 to i8* + store i8* %7, i8** %5, align 4 + %8 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 0 + store i8* %1, i8** %8, align 4 + %9 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 1 + store i8* %2, i8** %9, align 4 + %10 = getelementptr inbounds %struct.point3, %struct.point3* %6, i32 0, i32 2 + store i8* %3, i8** %10, align 4 + %11 = bitcast %struct.point3* %0 to i8* + %12 = bitcast %struct.point3* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, i8* %1, i8* %2, i8* %3, i8* %4) #0 { + %6 = alloca i8*, align 4 + %7 = alloca %struct.point4, align 4 + %8 = bitcast %struct.point4* %0 to i8* + store i8* %8, i8** %6, align 4 + %9 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 0 + store i8* %1, i8** %9, align 4 + %10 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 1 + store i8* %2, i8** %10, align 4 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 2 + store i8* %3, i8** %11, align 4 + %12 = getelementptr inbounds %struct.point4, %struct.point4* %7, i32 0, i32 3 + store i8* %4, i8** %12, align 4 + %13 = bitcast %struct.point4* %0 to i8* + %14 = bitcast %struct.point4* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = alloca i8*, align 4 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 4 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"NumRegisterParameters", i32 0} +!1 = !{i32 1, !"wchar_size", i32 4} +!2 = !{i32 7, !"PIC Level", i32 2} +!3 = !{i32 7, !"PIE Level", i32 2} +!4 = !{i32 7, !"uwtable", i32 2} +!5 = !{i32 7, !"frame-pointer", i32 2} +!6 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_float32.ll b/internal/cabi/_testdata/arch/riscv64/array_float32.ll new file mode 100644 index 00000000..6a797af6 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_float32.ll @@ -0,0 +1,292 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x float]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x float]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x float]* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x float]* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [3 x float]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [3 x float]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x float]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 4 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x float]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 4 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_float64.ll b/internal/cabi/_testdata/arch/riscv64/array_float64.ll new file mode 100644 index 00000000..5907c5df --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_float64.ll @@ -0,0 +1,270 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x double]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x double]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x double]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 8 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x double]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 8 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_int16.ll b/internal/cabi/_testdata/arch/riscv64/array_int16.ll new file mode 100644 index 00000000..ade46329 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_int16.ll @@ -0,0 +1,336 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 2, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 2, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 2, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 2 + %3 = alloca %struct.array2, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [2 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [2 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 2 + %3 = alloca %struct.array3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i16]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [3 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 6, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 2 + %3 = alloca %struct.array4, align 2 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i16]* %4 to i64* + store i64 %0, i64* %5, align 2 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i16]* %8 to i64* + %10 = load i64, i64* %9, align 2 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.array5, align 2 + %3 = alloca %struct.array5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [5 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [5 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.array6, align 2 + %3 = alloca %struct.array6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [6 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [6 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.array7, align 2 + %3 = alloca %struct.array7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [7 x i16]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %9, i8* align 2 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [7 x i16]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 2 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.array8, align 2 + %3 = alloca %struct.array8, align 2 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i16]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 2 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i16]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 2 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_int32.ll b/internal/cabi/_testdata/arch/riscv64/array_int32.ll new file mode 100644 index 00000000..08d6f991 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_int32.ll @@ -0,0 +1,292 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i32]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i32]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i32]* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i32]* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.array3, align 4 + %3 = alloca %struct.array3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [3 x i32]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [3 x i32]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.array4, align 4 + %3 = alloca %struct.array4, align 4 + %4 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + %5 = bitcast [4 x i32]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 4 + %6 = bitcast %struct.array4* %2 to i8* + %7 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %9 = bitcast [4 x i32]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 4 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_int64.ll b/internal/cabi/_testdata/arch/riscv64/array_int64.ll new file mode 100644 index 00000000..d1c6adf1 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_int64.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.array2* %2 to i8* + %6 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_int8.ll b/internal/cabi/_testdata/arch/riscv64/array_int8.ll new file mode 100644 index 00000000..29e03df4 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_int8.ll @@ -0,0 +1,424 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [1 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 1, i1 false) + %9 = bitcast %struct.array1* %2 to i8* + %10 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 1, i1 false) + %11 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [1 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 1, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [2 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 2, i1 false) + %9 = bitcast %struct.array2* %2 to i8* + %10 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 2, i1 false) + %11 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [2 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 2, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.array3, align 1 + %3 = alloca %struct.array3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array3, %struct.array3* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [3 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 3, i1 false) + %9 = bitcast %struct.array3* %2 to i8* + %10 = bitcast %struct.array3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 3, i1 false) + %11 = getelementptr inbounds %struct.array3, %struct.array3* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [3 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 3, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.array4, align 1 + %3 = alloca %struct.array4, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array4, %struct.array4* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [4 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.array4* %2 to i8* + %10 = bitcast %struct.array4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.array4, %struct.array4* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [4 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo5(i64 %0) #0 { + %2 = alloca %struct.array5, align 1 + %3 = alloca %struct.array5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array5, %struct.array5* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [5 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 5, i1 false) + %9 = bitcast %struct.array5* %2 to i8* + %10 = bitcast %struct.array5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 5, i1 false) + %11 = getelementptr inbounds %struct.array5, %struct.array5* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [5 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 5, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo6(i64 %0) #0 { + %2 = alloca %struct.array6, align 1 + %3 = alloca %struct.array6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array6, %struct.array6* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [6 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 6, i1 false) + %9 = bitcast %struct.array6* %2 to i8* + %10 = bitcast %struct.array6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 6, i1 false) + %11 = getelementptr inbounds %struct.array6, %struct.array6* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [6 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 6, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.array7, align 1 + %3 = alloca %struct.array7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array7, %struct.array7* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast [7 x i8]* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 7, i1 false) + %9 = bitcast %struct.array7* %2 to i8* + %10 = bitcast %struct.array7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 7, i1 false) + %11 = getelementptr inbounds %struct.array7, %struct.array7* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast [7 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 7, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.array8, align 1 + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, %struct.array8* %3, i32 0, i32 0 + %5 = bitcast [8 x i8]* %4 to i64* + store i64 %0, i64* %5, align 1 + %6 = bitcast %struct.array8* %2 to i8* + %7 = bitcast %struct.array8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array8, %struct.array8* %2, i32 0, i32 0 + %9 = bitcast [8 x i8]* %8 to i64* + %10 = load i64, i64* %9, align 1 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.array9, align 1 + %3 = alloca %struct.array9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array9, %struct.array9* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [9 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 9, i1 false) + %9 = bitcast %struct.array9* %2 to i8* + %10 = bitcast %struct.array9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 9, i1 false) + %11 = getelementptr inbounds %struct.array9, %struct.array9* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [9 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 9, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.array10, align 1 + %3 = alloca %struct.array10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [10 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 10, i1 false) + %9 = bitcast %struct.array10* %2 to i8* + %10 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 10, i1 false) + %11 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [10 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 10, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.array11, align 1 + %3 = alloca %struct.array11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array11, %struct.array11* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [11 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 11, i1 false) + %9 = bitcast %struct.array11* %2 to i8* + %10 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 11, i1 false) + %11 = getelementptr inbounds %struct.array11, %struct.array11* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [11 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 11, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.array12, align 1 + %3 = alloca %struct.array12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array12, %struct.array12* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [12 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 12, i1 false) + %9 = bitcast %struct.array12* %2 to i8* + %10 = bitcast %struct.array12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array12, %struct.array12* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [12 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 12, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.array13, align 1 + %3 = alloca %struct.array13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array13, %struct.array13* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [13 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 13, i1 false) + %9 = bitcast %struct.array13* %2 to i8* + %10 = bitcast %struct.array13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 13, i1 false) + %11 = getelementptr inbounds %struct.array13, %struct.array13* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [13 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 13, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.array14, align 1 + %3 = alloca %struct.array14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array14, %struct.array14* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [14 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 14, i1 false) + %9 = bitcast %struct.array14* %2 to i8* + %10 = bitcast %struct.array14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 14, i1 false) + %11 = getelementptr inbounds %struct.array14, %struct.array14* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [14 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 14, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.array15, align 1 + %3 = alloca %struct.array15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + %6 = getelementptr inbounds %struct.array15, %struct.array15* %3, i32 0, i32 0 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %7 = bitcast [15 x i8]* %6 to i8* + %8 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %7, i8* align 8 %8, i64 15, i1 false) + %9 = bitcast %struct.array15* %2 to i8* + %10 = bitcast %struct.array15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %10, i64 15, i1 false) + %11 = getelementptr inbounds %struct.array15, %struct.array15* %2, i32 0, i32 0 + %12 = bitcast [2 x i64]* %5 to i8* + %13 = bitcast [15 x i8]* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 1 %13, i64 15, i1 false) + %14 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.array16, align 1 + %3 = alloca %struct.array16, align 1 + %4 = getelementptr inbounds %struct.array16, %struct.array16* %3, i32 0, i32 0 + %5 = bitcast [16 x i8]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 1 + %6 = bitcast %struct.array16* %2 to i8* + %7 = bitcast %struct.array16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array16, %struct.array16* %2, i32 0, i32 0 + %9 = bitcast [16 x i8]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 1 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_pointer.ll b/internal/cabi/_testdata/arch/riscv64/array_pointer.ll new file mode 100644 index 00000000..e1fe5422 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_pointer.ll @@ -0,0 +1,270 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 8 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 8 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/array_uintptr.ll b/internal/cabi/_testdata/arch/riscv64/array_uintptr.ll new file mode 100644 index 00000000..38f3ec58 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/array_uintptr.ll @@ -0,0 +1,270 @@ +; ModuleID = '../../wrap/array_uintptr.c' +source_filename = "../../wrap/array_uintptr.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.array2, align 8 + %3 = alloca %struct.array2, align 8 + %4 = getelementptr inbounds %struct.array2, %struct.array2* %3, i32 0, i32 0 + %5 = bitcast [2 x i8*]* %4 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %5, align 8 + %6 = bitcast %struct.array2* %2 to i8* + %7 = bitcast %struct.array2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 16, i1 false) + %8 = getelementptr inbounds %struct.array2, %struct.array2* %2, i32 0, i32 0 + %9 = bitcast [2 x i8*]* %8 to [2 x i64]* + %10 = load [2 x i64], [2 x i64]* %9, align 8 + ret [2 x i64] %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array3* %0 to i8* + %6 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array4* %0 to i8* + %6 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array5* %0 to i8* + %6 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array6* %0 to i8* + %6 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array7* %0 to i8* + %6 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array8* %0 to i8* + %6 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array9* %0 to i8* + %6 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array10* %0 to i8* + %6 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array11* %0 to i8* + %6 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array12* %0 to i8* + %6 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array13* %0 to i8* + %6 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array14* %0 to i8* + %6 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array15* %0 to i8* + %6 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array16* %0 to i8* + %6 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array17* %0 to i8* + %6 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array18* %0 to i8* + %6 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array19* %0 to i8* + %6 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.array20* %0 to i8* + %6 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/basic.ll b/internal/cabi/_testdata/arch/riscv64/basic.ll new file mode 100644 index 00000000..cb3f49d2 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/basic.ll @@ -0,0 +1,71 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +; Function Attrs: noinline nounwind optnone +define dso_local zeroext i8 @basic_int8(i8 noundef zeroext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @basic_int32(i32 noundef signext %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i8* @basic_uintptr(i8* noundef %0) #0 { + %2 = alloca i8*, align 8 + store i8* %0, i8** %2, align 8 + %3 = load i8*, i8** %2, align 8 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/composite.ll b/internal/cabi/_testdata/arch/riscv64/composite.ll new file mode 100644 index 00000000..1c7040d8 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/composite.ll @@ -0,0 +1,176 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array10(i64 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %7 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %6, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %8 = bitcast [1 x i32]* %7 to i8* + %9 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 8 %9, i64 4, i1 false) + %10 = bitcast %struct.array10* %2 to i8* + %11 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 4, i1 false) + %12 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %13 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %12, i32 0, i32 0 + %14 = bitcast i64* %5 to i8* + %15 = bitcast [1 x i32]* %13 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 4 %15, i64 4, i1 false) + %16 = load i64, i64* %5, align 8 + ret i64 %16 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array11(i64 %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + %4 = bitcast %struct.array11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.array11* %2 to i8* + %6 = bitcast %struct.array11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.array11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point10(i64 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = getelementptr inbounds %struct.point10, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + %6 = trunc i64 %0 to i32 + store i32 %6, i32* %5, align 4 + %7 = bitcast %struct.point10* %2 to i8* + %8 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 4, i1 false) + %9 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %9, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + %12 = zext i32 %11 to i64 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point11(i64 %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + %4 = bitcast %struct.point11* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point11* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_array20(i64 %0) #0 { + %2 = alloca %struct.array20, align 4 + %3 = alloca %struct.array20, align 4 + %4 = getelementptr inbounds %struct.array20, %struct.array20* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %4, i32 0, i32 0 + %6 = bitcast [2 x i32]* %5 to i64* + store i64 %0, i64* %6, align 4 + %7 = bitcast %struct.array20* %2 to i8* + %8 = bitcast %struct.array20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64 8, i1 false) + %9 = getelementptr inbounds %struct.array20, %struct.array20* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray2, %struct.basearray2* %9, i32 0, i32 0 + %11 = bitcast [2 x i32]* %10 to i64* + %12 = load i64, i64* %11, align 4 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo_array21([2 x i64] %0) #0 { + %2 = alloca %struct.array21, align 4 + %3 = alloca %struct.array21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.array21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.array21* %2 to i8* + %9 = bitcast %struct.array21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.array21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo_point20(i64 %0) #0 { + %2 = alloca %struct.point20, align 4 + %3 = alloca %struct.point20, align 4 + %4 = getelementptr inbounds %struct.point20, %struct.point20* %3, i32 0, i32 0 + %5 = bitcast %struct.basepoint2* %4 to i64* + store i64 %0, i64* %5, align 4 + %6 = bitcast %struct.point20* %2 to i8* + %7 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point20, %struct.point20* %2, i32 0, i32 0 + %9 = bitcast %struct.basepoint2* %8 to i64* + %10 = load i64, i64* %9, align 4 + ret i64 %10 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo_point21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 4 + %3 = alloca %struct.point21, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point21* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point21* %2 to i8* + %9 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point21* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/demo.ll b/internal/cabi/_testdata/arch/riscv64/demo.ll new file mode 100644 index 00000000..b1baae61 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/demo.ll @@ -0,0 +1,926 @@ +; ModuleID = '../../wrap/demo.c' +source_filename = "../../wrap/demo.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point = type { i32, i32 } +%struct.point1 = type { i32, i32, i32 } +%struct.point64 = type { i64, i64 } +%struct.struct32 = type { i32 } +%struct.point2 = type { i8, i32, i32 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i32 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i32 } +%struct.point7 = type { i8, i8, i8, i8, i8, i32, i8 } +%struct.data1 = type { i8, i64 } +%struct.data2 = type { i32, i64 } +%struct.data3 = type { i64, i8 } +%struct.fdata1 = type { float } +%struct.ddata1 = type { double } +%struct.ddata2 = type { double, double } +%struct.ddata3 = type { double, double, double } +%struct.fdata2i = type { float, i32 } +%struct.fdata2 = type { float, float } +%struct.fdata3 = type { float, float, float } +%struct.fdata4 = type { float, float, float, float } +%struct.fdata5 = type { float, float, float, float, float } +%struct.fdata2id = type { i8, i8, double } +%struct.fdata7if = type { [7 x i8], float } +%struct.fdata4if = type { float, i8, float, float } +%struct.array = type { [8 x i32] } + +@.str = private unnamed_addr constant [20 x i8] c"point64: %lld %lld\0A\00", align 1 +@.str.1 = private unnamed_addr constant [14 x i8] c"struct32: %d\0A\00", align 1 +@.str.2 = private unnamed_addr constant [14 x i8] c"point: %d %d\0A\00", align 1 +@.str.3 = private unnamed_addr constant [18 x i8] c"point1: %d %d %d\0A\00", align 1 +@.str.4 = private unnamed_addr constant [18 x i8] c"point2: %d %d %d\0A\00", align 1 +@.str.5 = private unnamed_addr constant [18 x i8] c"point3: %d %d %d\0A\00", align 1 +@.str.6 = private unnamed_addr constant [21 x i8] c"point4: %d %d %d %d\0A\00", align 1 +@.str.7 = private unnamed_addr constant [24 x i8] c"point5: %d %d %d %d %d\0A\00", align 1 +@.str.8 = private unnamed_addr constant [27 x i8] c"point6: %d %d %d %d %d %d\0A\00", align 1 +@.str.9 = private unnamed_addr constant [30 x i8] c"point7: %d %d %d %d %d %d %d\0A\00", align 1 +@.str.10 = private unnamed_addr constant [16 x i8] c"data1: %d %lld\0A\00", align 1 +@.str.11 = private unnamed_addr constant [16 x i8] c"data2: %d %lld\0A\00", align 1 +@.str.12 = private unnamed_addr constant [16 x i8] c"data3: %lld %d\0A\00", align 1 +@.str.13 = private unnamed_addr constant [9 x i8] c"ff1: %f\0A\00", align 1 +@.str.14 = private unnamed_addr constant [9 x i8] c"dd1: %f\0A\00", align 1 +@.str.15 = private unnamed_addr constant [12 x i8] c"dd2: %f %f\0A\00", align 1 +@.str.16 = private unnamed_addr constant [15 x i8] c"dd3: %f %f %f\0A\00", align 1 +@.str.17 = private unnamed_addr constant [13 x i8] c"ff2i: %f %d\0A\00", align 1 +@.str.18 = private unnamed_addr constant [12 x i8] c"ff2: %f %f\0A\00", align 1 +@.str.19 = private unnamed_addr constant [15 x i8] c"ff3: %f %f %f\0A\00", align 1 +@.str.20 = private unnamed_addr constant [18 x i8] c"ff4: %f %f %f %f\0A\00", align 1 +@.str.21 = private unnamed_addr constant [21 x i8] c"ff5: %f %f %f %f %f\0A\00", align 1 +@.str.22 = private unnamed_addr constant [15 x i8] c"ff6: %d %d %f\0A\00", align 1 +@.str.23 = private unnamed_addr constant [17 x i8] c"ff7if: %d %d %f\0A\00", align 1 +@.str.24 = private unnamed_addr constant [20 x i8] c"ff4if: %f %d %f %f\0A\00", align 1 +@.str.25 = private unnamed_addr constant [16 x i8] c"demo: %d %d %d\0A\00", align 1 +@__const.callback.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.26 = private unnamed_addr constant [27 x i8] c"callback1 array: %d %d %d\0A\00", align 1 +@__const.callback1.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback1.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.27 = private unnamed_addr constant [22 x i8] c"callback1 ret: %d,%d\0A\00", align 1 +@.str.28 = private unnamed_addr constant [28 x i8] c"mycallback array: %d %d %d\0A\00", align 1 +@.str.29 = private unnamed_addr constant [22 x i8] c"mycallback pt: %d %d\0A\00", align 1 +@.str.30 = private unnamed_addr constant [26 x i8] c"mycallback pt1: %d %d %d\0A\00", align 1 + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @demo32(i32 noundef signext %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + %4 = add nsw i32 %3, 100 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + %4 = add nsw i64 %3, 100 + ret i64 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @pt64([2 x i64] %0) #0 { + %2 = alloca %struct.point64, align 8 + %3 = alloca %struct.point64, align 8 + %4 = bitcast %struct.point64* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.point64, %struct.point64* %3, i32 0, i32 0 + %6 = load i64, i64* %5, align 8 + %7 = getelementptr inbounds %struct.point64, %struct.point64* %3, i32 0, i32 1 + %8 = load i64, i64* %7, align 8 + %9 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i64 noundef %6, i64 noundef %8) + %10 = bitcast %struct.point64* %2 to i8* + %11 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 8 %11, i64 16, i1 false) + %12 = bitcast %struct.point64* %2 to [2 x i64]* + %13 = load [2 x i64], [2 x i64]* %12, align 8 + ret [2 x i64] %13 +} + +declare dso_local signext i32 @printf(i8* noundef, ...) #1 + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo32s(i64 %0) #0 { + %2 = alloca %struct.struct32, align 4 + %3 = alloca %struct.struct32, align 4 + %4 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i32 + store i32 %5, i32* %4, align 4 + %6 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %7 = load i32, i32* %6, align 4 + %8 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), i32 noundef signext %7) + %9 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %11 = load i32, i32* %10, align 4 + %12 = add nsw i32 %11, 100 + store i32 %12, i32* %9, align 4 + %13 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %14 = load i32, i32* %13, align 4 + %15 = zext i32 %14 to i64 + ret i64 %15 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @pt(i64 %0) #0 { + %2 = alloca %struct.point, align 4 + %3 = alloca %struct.point, align 4 + %4 = bitcast %struct.point* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 4 + %7 = getelementptr inbounds %struct.point, %struct.point* %3, i32 0, i32 1 + %8 = load i32, i32* %7, align 4 + %9 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i64 0, i64 0), i32 noundef signext %6, i32 noundef signext %8) + %10 = bitcast %struct.point* %2 to i8* + %11 = bitcast %struct.point* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %10, i8* align 4 %11, i64 8, i1 false) + %12 = bitcast %struct.point* %2 to i64* + %13 = load i64, i64* %12, align 4 + ret i64 %13 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @pt1([2 x i64] %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + %10 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 1 + %11 = load i32, i32* %10, align 4 + %12 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 2 + %13 = load i32, i32* %12, align 4 + %14 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i32 noundef signext %9, i32 noundef signext %11, i32 noundef signext %13) + %15 = bitcast %struct.point1* %2 to i8* + %16 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %15, i8* align 4 %16, i64 12, i1 false) + %17 = bitcast [2 x i64]* %5 to i8* + %18 = bitcast %struct.point1* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %17, i8* align 4 %18, i64 12, i1 false) + %19 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %19 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @pt2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 4 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 1 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds %struct.point2, %struct.point2* %3, i32 0, i32 2 + %14 = load i32, i32* %13, align 4 + %15 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i64 0, i64 0), i32 noundef signext %10, i32 noundef signext %12, i32 noundef signext %14) + %16 = bitcast %struct.point2* %2 to i8* + %17 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %16, i8* align 4 %17, i64 12, i1 false) + %18 = bitcast [2 x i64]* %5 to i8* + %19 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %18, i8* align 4 %19, i64 12, i1 false) + %20 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %20 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @pt3(i64 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 3, i1 false) + %8 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point3, %struct.point3* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i64 0, i64 0), i32 noundef signext %10, i32 noundef signext %13, i32 noundef signext %16) + %18 = bitcast %struct.point3* %2 to i8* + %19 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %18, i8* align 1 %19, i64 3, i1 false) + %20 = bitcast i64* %5 to i8* + %21 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %20, i8* align 1 %21, i64 3, i1 false) + %22 = load i64, i64* %5, align 8 + ret i64 %22 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @pt4(i64 %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point4, %struct.point4* %3, i32 0, i32 3 + %15 = load i32, i32* %14, align 4 + %16 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i64 0, i64 0), i32 noundef signext %7, i32 noundef signext %10, i32 noundef signext %13, i32 noundef signext %15) + %17 = bitcast %struct.point4* %2 to i8* + %18 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %17, i8* align 4 %18, i64 8, i1 false) + %19 = bitcast %struct.point4* %2 to i64* + %20 = load i64, i64* %19, align 4 + ret i64 %20 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @pt5(i64 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 3 + %18 = load i8, i8* %17, align 1 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point5, %struct.point5* %3, i32 0, i32 4 + %21 = load i8, i8* %20, align 1 + %22 = zext i8 %21 to i32 + %23 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0), i32 noundef signext %10, i32 noundef signext %13, i32 noundef signext %16, i32 noundef signext %19, i32 noundef signext %22) + %24 = bitcast %struct.point5* %2 to i8* + %25 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %24, i8* align 1 %25, i64 5, i1 false) + %26 = bitcast i64* %5 to i8* + %27 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 1 %27, i64 5, i1 false) + %28 = load i64, i64* %5, align 8 + ret i64 %28 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @pt6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 4 + %3 = alloca %struct.point6, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 0 + %9 = load i8, i8* %8, align 4 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 1 + %12 = load i8, i8* %11, align 1 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 2 + %15 = load i8, i8* %14, align 2 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 3 + %18 = load i8, i8* %17, align 1 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 4 + %21 = load i8, i8* %20, align 4 + %22 = zext i8 %21 to i32 + %23 = getelementptr inbounds %struct.point6, %struct.point6* %3, i32 0, i32 5 + %24 = load i32, i32* %23, align 4 + %25 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i64 0, i64 0), i32 noundef signext %10, i32 noundef signext %13, i32 noundef signext %16, i32 noundef signext %19, i32 noundef signext %22, i32 noundef signext %24) + %26 = bitcast %struct.point6* %2 to i8* + %27 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %26, i8* align 4 %27, i64 12, i1 false) + %28 = bitcast [2 x i64]* %5 to i8* + %29 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %28, i8* align 4 %29, i64 12, i1 false) + %30 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %30 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @pt7([2 x i64] %0) #0 { + %2 = alloca %struct.point7, align 4 + %3 = alloca %struct.point7, align 4 + %4 = bitcast %struct.point7* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 4 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 2 + %12 = load i8, i8* %11, align 2 + %13 = zext i8 %12 to i32 + %14 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 3 + %15 = load i8, i8* %14, align 1 + %16 = zext i8 %15 to i32 + %17 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 4 + %18 = load i8, i8* %17, align 4 + %19 = zext i8 %18 to i32 + %20 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 5 + %21 = load i32, i32* %20, align 4 + %22 = getelementptr inbounds %struct.point7, %struct.point7* %3, i32 0, i32 6 + %23 = load i8, i8* %22, align 4 + %24 = zext i8 %23 to i32 + %25 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i64 0, i64 0), i32 noundef signext %7, i32 noundef signext %10, i32 noundef signext %13, i32 noundef signext %16, i32 noundef signext %19, i32 noundef signext %21, i32 noundef signext %24) + %26 = bitcast %struct.point7* %2 to i8* + %27 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %26, i8* align 4 %27, i64 16, i1 false) + %28 = bitcast %struct.point7* %2 to [2 x i64]* + %29 = load [2 x i64], [2 x i64]* %28, align 4 + ret [2 x i64] %29 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @fn1([2 x i64] %0) #0 { + %2 = alloca %struct.data1, align 8 + %3 = alloca %struct.data1, align 8 + %4 = bitcast %struct.data1* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data1, %struct.data1* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 8 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.data1, %struct.data1* %3, i32 0, i32 1 + %9 = load i64, i64* %8, align 8 + %10 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i64 0, i64 0), i32 noundef signext %7, i64 noundef %9) + %11 = bitcast %struct.data1* %2 to i8* + %12 = bitcast %struct.data1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %11, i8* align 8 %12, i64 16, i1 false) + %13 = bitcast %struct.data1* %2 to [2 x i64]* + %14 = load [2 x i64], [2 x i64]* %13, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @fn2([2 x i64] %0) #0 { + %2 = alloca %struct.data2, align 8 + %3 = alloca %struct.data2, align 8 + %4 = bitcast %struct.data2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data2, %struct.data2* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 8 + %7 = getelementptr inbounds %struct.data2, %struct.data2* %3, i32 0, i32 1 + %8 = load i64, i64* %7, align 8 + %9 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), i32 noundef signext %6, i64 noundef %8) + %10 = bitcast %struct.data2* %2 to i8* + %11 = bitcast %struct.data2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 8 %11, i64 16, i1 false) + %12 = bitcast %struct.data2* %2 to [2 x i64]* + %13 = load [2 x i64], [2 x i64]* %12, align 8 + ret [2 x i64] %13 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @fn3([2 x i64] %0) #0 { + %2 = alloca %struct.data3, align 8 + %3 = alloca %struct.data3, align 8 + %4 = bitcast %struct.data3* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.data3, %struct.data3* %3, i32 0, i32 0 + %6 = load i64, i64* %5, align 8 + %7 = getelementptr inbounds %struct.data3, %struct.data3* %3, i32 0, i32 1 + %8 = load i8, i8* %7, align 8 + %9 = zext i8 %8 to i32 + %10 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0), i64 noundef %6, i32 noundef signext %9) + %11 = bitcast %struct.data3* %2 to i8* + %12 = bitcast %struct.data3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %11, i8* align 8 %12, i64 16, i1 false) + %13 = bitcast %struct.data3* %2 to [2 x i64]* + %14 = load [2 x i64], [2 x i64]* %13, align 8 + ret [2 x i64] %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @ff1(i64 %0) #0 { + %2 = alloca %struct.fdata1, align 4 + %3 = alloca %struct.fdata1, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast float* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 4, i1 false) + %9 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0), double noundef %11) + %13 = bitcast %struct.fdata1* %2 to i8* + %14 = bitcast %struct.fdata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %13, i8* align 4 %14, i64 4, i1 false) + %15 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %2, i32 0, i32 0 + %16 = bitcast i64* %5 to i8* + %17 = bitcast float* %15 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %16, i8* align 4 %17, i64 4, i1 false) + %18 = load i64, i64* %5, align 8 + ret i64 %18 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @dd1(i64 %0) #0 { + %2 = alloca %struct.ddata1, align 8 + %3 = alloca %struct.ddata1, align 8 + %4 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + %5 = bitcast double* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + %7 = load double, double* %6, align 8 + %8 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i64 0, i64 0), double noundef %7) + %9 = bitcast %struct.ddata1* %2 to i8* + %10 = bitcast %struct.ddata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %9, i8* align 8 %10, i64 8, i1 false) + %11 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %2, i32 0, i32 0 + %12 = bitcast double* %11 to i64* + %13 = load i64, i64* %12, align 8 + ret i64 %13 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @dd2([2 x i64] %0) #0 { + %2 = alloca %struct.ddata2, align 8 + %3 = alloca %struct.ddata2, align 8 + %4 = bitcast %struct.ddata2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %3, i32 0, i32 0 + %6 = load double, double* %5, align 8 + %7 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %3, i32 0, i32 1 + %8 = load double, double* %7, align 8 + %9 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0), double noundef %6, double noundef %8) + %10 = bitcast %struct.ddata2* %2 to i8* + %11 = bitcast %struct.ddata2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 8 %11, i64 16, i1 false) + %12 = bitcast %struct.ddata2* %2 to [2 x i64]* + %13 = load [2 x i64], [2 x i64]* %12, align 8 + ret [2 x i64] %13 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @dd3(%struct.ddata3* noalias sret(%struct.ddata3) align 8 %0, %struct.ddata3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.ddata3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 0 + %6 = load double, double* %5, align 8 + %7 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 1 + %8 = load double, double* %7, align 8 + %9 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 2 + %10 = load double, double* %9, align 8 + %11 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i64 0, i64 0), double noundef %6, double noundef %8, double noundef %10) + %12 = bitcast %struct.ddata3* %0 to i8* + %13 = bitcast %struct.ddata3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 8 %13, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @ff2i(i64 %0) #0 { + %2 = alloca %struct.fdata2i, align 4 + %3 = alloca %struct.fdata2i, align 4 + %4 = bitcast %struct.fdata2i* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %3, i32 0, i32 1 + %9 = load i32, i32* %8, align 4 + %10 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0), double noundef %7, i32 noundef signext %9) + %11 = bitcast %struct.fdata2i* %2 to i8* + %12 = bitcast %struct.fdata2i* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %11, i8* align 4 %12, i64 8, i1 false) + %13 = bitcast %struct.fdata2i* %2 to i64* + %14 = load i64, i64* %13, align 4 + ret i64 %14 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @ff2(i64 %0) #0 { + %2 = alloca %struct.fdata2, align 4 + %3 = alloca %struct.fdata2, align 4 + %4 = bitcast %struct.fdata2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %3, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0), double noundef %7, double noundef %10) + %12 = bitcast %struct.fdata2* %2 to i8* + %13 = bitcast %struct.fdata2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %12, i8* align 4 %13, i64 8, i1 false) + %14 = bitcast %struct.fdata2* %2 to i64* + %15 = load i64, i64* %14, align 4 + ret i64 %15 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @ff3([2 x i64] %0) #0 { + %2 = alloca %struct.fdata3, align 4 + %3 = alloca %struct.fdata3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.fdata3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 0 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 1 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %3, i32 0, i32 2 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i64 0, i64 0), double noundef %10, double noundef %13, double noundef %16) + %18 = bitcast %struct.fdata3* %2 to i8* + %19 = bitcast %struct.fdata3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 12, i1 false) + %20 = bitcast [2 x i64]* %5 to i8* + %21 = bitcast %struct.fdata3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %20, i8* align 4 %21, i64 12, i1 false) + %22 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %22 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @ff4([2 x i64] %0) #0 { + %2 = alloca %struct.fdata4, align 4 + %3 = alloca %struct.fdata4, align 4 + %4 = bitcast %struct.fdata4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %3, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), double noundef %7, double noundef %10, double noundef %13, double noundef %16) + %18 = bitcast %struct.fdata4* %2 to i8* + %19 = bitcast %struct.fdata4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 16, i1 false) + %20 = bitcast %struct.fdata4* %2 to [2 x i64]* + %21 = load [2 x i64], [2 x i64]* %20, align 4 + ret [2 x i64] %21 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @ff5(%struct.fdata5* noalias sret(%struct.fdata5) align 4 %0, %struct.fdata5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.fdata5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 1 + %9 = load float, float* %8, align 4 + %10 = fpext float %9 to double + %11 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 4 + %18 = load float, float* %17, align 4 + %19 = fpext float %18 to double + %20 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0), double noundef %7, double noundef %10, double noundef %13, double noundef %16, double noundef %19) + %21 = bitcast %struct.fdata5* %0 to i8* + %22 = bitcast %struct.fdata5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %21, i8* align 4 %22, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @ff2id([2 x i64] %0) #0 { + %2 = alloca %struct.fdata2id, align 8 + %3 = alloca %struct.fdata2id, align 8 + %4 = bitcast %struct.fdata2id* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 0 + %6 = load i8, i8* %5, align 8 + %7 = zext i8 %6 to i32 + %8 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %3, i32 0, i32 2 + %12 = load double, double* %11, align 8 + %13 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0), i32 noundef signext %7, i32 noundef signext %10, double noundef %12) + %14 = bitcast %struct.fdata2id* %2 to i8* + %15 = bitcast %struct.fdata2id* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %14, i8* align 8 %15, i64 16, i1 false) + %16 = bitcast %struct.fdata2id* %2 to [2 x i64]* + %17 = load [2 x i64], [2 x i64]* %16, align 8 + ret [2 x i64] %17 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @ff7if([2 x i64] %0) #0 { + %2 = alloca %struct.fdata7if, align 4 + %3 = alloca %struct.fdata7if, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.fdata7if* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 0 + %9 = getelementptr inbounds [7 x i8], [7 x i8]* %8, i64 0, i64 0 + %10 = load i8, i8* %9, align 4 + %11 = zext i8 %10 to i32 + %12 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 0 + %13 = getelementptr inbounds [7 x i8], [7 x i8]* %12, i64 0, i64 1 + %14 = load i8, i8* %13, align 1 + %15 = zext i8 %14 to i32 + %16 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %3, i32 0, i32 1 + %17 = load float, float* %16, align 4 + %18 = fpext float %17 to double + %19 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i64 0, i64 0), i32 noundef signext %11, i32 noundef signext %15, double noundef %18) + %20 = bitcast %struct.fdata7if* %2 to i8* + %21 = bitcast %struct.fdata7if* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %20, i8* align 4 %21, i64 12, i1 false) + %22 = bitcast [2 x i64]* %5 to i8* + %23 = bitcast %struct.fdata7if* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 4 %23, i64 12, i1 false) + %24 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %24 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @ff4if([2 x i64] %0) #0 { + %2 = alloca %struct.fdata4if, align 4 + %3 = alloca %struct.fdata4if, align 4 + %4 = bitcast %struct.fdata4if* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 1 + %9 = load i8, i8* %8, align 4 + %10 = zext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 2 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %3, i32 0, i32 3 + %15 = load float, float* %14, align 4 + %16 = fpext float %15 to double + %17 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i64 0, i64 0), double noundef %7, i32 noundef signext %10, double noundef %13, double noundef %16) + %18 = bitcast %struct.fdata4if* %2 to i8* + %19 = bitcast %struct.fdata4if* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 16, i1 false) + %20 = bitcast %struct.fdata4if* %2 to [2 x i64]* + %21 = load [2 x i64], [2 x i64]* %20, align 4 + ret [2 x i64] %21 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo(%struct.array* noalias sret(%struct.array) align 4 %0, %struct.array* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.array* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %6 = getelementptr inbounds [8 x i32], [8 x i32]* %5, i64 0, i64 0 + %7 = load i32, i32* %6, align 4 + %8 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %9 = getelementptr inbounds [8 x i32], [8 x i32]* %8, i64 0, i64 1 + %10 = load i32, i32* %9, align 4 + %11 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i64 0, i64 2 + %13 = load i32, i32* %12, align 4 + %14 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.25, i64 0, i64 0), i32 noundef signext %7, i32 noundef signext %10, i32 noundef signext %13) + %15 = bitcast %struct.array* %0 to i8* + %16 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %15, i8* align 4 %16, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(%struct.array* noalias sret(%struct.array) align 4 %0, i32 noundef signext %1) #0 { + %3 = alloca i8*, align 8 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + %6 = bitcast %struct.array* %0 to i8* + store i8* %6, i8** %3, align 8 + store i32 %1, i32* %4, align 4 + store i32 0, i32* %5, align 4 + br label %7 + +7: ; preds = %18, %2 + %8 = load i32, i32* %5, align 4 + %9 = icmp slt i32 %8, 8 + br i1 %9, label %10, label %21 + +10: ; preds = %7 + %11 = load i32, i32* %5, align 4 + %12 = load i32, i32* %4, align 4 + %13 = add nsw i32 %11, %12 + %14 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %15 = load i32, i32* %5, align 4 + %16 = sext i32 %15 to i64 + %17 = getelementptr inbounds [8 x i32], [8 x i32]* %14, i64 0, i64 %16 + store i32 %13, i32* %17, align 4 + br label %18 + +18: ; preds = %10 + %19 = load i32, i32* %5, align 4 + %20 = add nsw i32 %19, 1 + store i32 %20, i32* %5, align 4 + br label %7, !llvm.loop !5 + +21: ; preds = %7 + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @callback(void (%struct.array*, %struct.array*, i64, [2 x i64])* noundef %0, %struct.array* noundef %1) #0 { + %3 = alloca void (%struct.array*, %struct.array*, i64, [2 x i64])*, align 8 + %4 = alloca %struct.array, align 4 + %5 = alloca %struct.array, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca %struct.point1, align 4 + %8 = alloca %struct.array, align 4 + %9 = alloca %struct.array, align 4 + %10 = alloca [2 x i64], align 8 + %11 = alloca %struct.array, align 4 + %12 = alloca %struct.array, align 4 + store void (%struct.array*, %struct.array*, i64, [2 x i64])* %0, void (%struct.array*, %struct.array*, i64, [2 x i64])** %3, align 8 + %13 = bitcast %struct.array* %5 to i8* + %14 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %13, i8* align 4 %14, i64 32, i1 false) + call void @demo(%struct.array* sret(%struct.array) align 4 %4, %struct.array* noundef %5) + %15 = bitcast %struct.point* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %15, i8* align 4 bitcast (%struct.point* @__const.callback.pt to i8*), i64 8, i1 false) + %16 = bitcast %struct.point1* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %16, i8* align 4 bitcast (%struct.point1* @__const.callback.pt1 to i8*), i64 12, i1 false) + %17 = load void (%struct.array*, %struct.array*, i64, [2 x i64])*, void (%struct.array*, %struct.array*, i64, [2 x i64])** %3, align 8 + %18 = bitcast %struct.array* %9 to i8* + %19 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %18, i8* align 4 %19, i64 32, i1 false) + %20 = bitcast %struct.point* %6 to i64* + %21 = load i64, i64* %20, align 4 + %22 = bitcast [2 x i64]* %10 to i8* + %23 = bitcast %struct.point1* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %22, i8* align 4 %23, i64 12, i1 false) + %24 = load [2 x i64], [2 x i64]* %10, align 8 + call void %17(%struct.array* sret(%struct.array) align 4 %8, %struct.array* noundef %9, i64 %21, [2 x i64] %24) + %25 = bitcast %struct.array* %12 to i8* + %26 = bitcast %struct.array* %8 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %25, i8* align 4 %26, i64 32, i1 false) + call void @demo(%struct.array* sret(%struct.array) align 4 %11, %struct.array* noundef %12) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @callback1(i64 (%struct.array*, i64, [2 x i64])* noundef %0, %struct.array* noundef %1) #0 { + %3 = alloca i64 (%struct.array*, i64, [2 x i64])*, align 8 + %4 = alloca %struct.point, align 4 + %5 = alloca %struct.point1, align 4 + %6 = alloca %struct.point, align 4 + %7 = alloca %struct.array, align 4 + %8 = alloca [2 x i64], align 8 + store i64 (%struct.array*, i64, [2 x i64])* %0, i64 (%struct.array*, i64, [2 x i64])** %3, align 8 + %9 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %10 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 0 + %11 = load i32, i32* %10, align 4 + %12 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %13 = getelementptr inbounds [8 x i32], [8 x i32]* %12, i64 0, i64 1 + %14 = load i32, i32* %13, align 4 + %15 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %16 = getelementptr inbounds [8 x i32], [8 x i32]* %15, i64 0, i64 7 + %17 = load i32, i32* %16, align 4 + %18 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i64 0, i64 0), i32 noundef signext %11, i32 noundef signext %14, i32 noundef signext %17) + %19 = bitcast %struct.point* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %19, i8* align 4 bitcast (%struct.point* @__const.callback1.pt to i8*), i64 8, i1 false) + %20 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %20, i8* align 4 bitcast (%struct.point1* @__const.callback1.pt1 to i8*), i64 12, i1 false) + %21 = load i64 (%struct.array*, i64, [2 x i64])*, i64 (%struct.array*, i64, [2 x i64])** %3, align 8 + %22 = bitcast %struct.array* %7 to i8* + %23 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %22, i8* align 4 %23, i64 32, i1 false) + %24 = bitcast %struct.point* %4 to i64* + %25 = load i64, i64* %24, align 4 + %26 = bitcast [2 x i64]* %8 to i8* + %27 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 4 %27, i64 12, i1 false) + %28 = load [2 x i64], [2 x i64]* %8, align 8 + %29 = call i64 %21(%struct.array* noundef %7, i64 %25, [2 x i64] %28) + %30 = bitcast %struct.point* %6 to i64* + store i64 %29, i64* %30, align 4 + %31 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %32 = load i32, i32* %31, align 4 + %33 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %34 = load i32, i32* %33, align 4 + %35 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i64 0, i64 0), i32 noundef signext %32, i32 noundef signext %34) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @mycallback(%struct.array* noundef %0, i64 %1, [2 x i64] %2) #0 { + %4 = alloca %struct.point, align 4 + %5 = alloca %struct.point, align 4 + %6 = alloca %struct.point1, align 4 + %7 = alloca [2 x i64], align 8 + %8 = bitcast %struct.point* %5 to i64* + store i64 %1, i64* %8, align 4 + store [2 x i64] %2, [2 x i64]* %7, align 8 + %9 = bitcast %struct.point1* %6 to i8* + %10 = bitcast [2 x i64]* %7 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 8 %10, i64 12, i1 false) + %11 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i64 0, i64 0 + %13 = load i32, i32* %12, align 4 + %14 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %15 = getelementptr inbounds [8 x i32], [8 x i32]* %14, i64 0, i64 1 + %16 = load i32, i32* %15, align 4 + %17 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %18 = getelementptr inbounds [8 x i32], [8 x i32]* %17, i64 0, i64 7 + %19 = load i32, i32* %18, align 4 + %20 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i64 0, i64 0), i32 noundef signext %13, i32 noundef signext %16, i32 noundef signext %19) + %21 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + %22 = load i32, i32* %21, align 4 + %23 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + %24 = load i32, i32* %23, align 4 + %25 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i64 0, i64 0), i32 noundef signext %22, i32 noundef signext %24) + %26 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 0 + %27 = load i32, i32* %26, align 4 + %28 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 1 + %29 = load i32, i32* %28, align 4 + %30 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 2 + %31 = load i32, i32* %30, align 4 + %32 = call signext i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.30, i64 0, i64 0), i32 noundef signext %27, i32 noundef signext %29, i32 noundef signext %31) + %33 = getelementptr inbounds %struct.point, %struct.point* %4, i32 0, i32 0 + %34 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 0 + %35 = load i32, i32* %34, align 4 + %36 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 0 + %37 = load i32, i32* %36, align 4 + %38 = add nsw i32 %35, %37 + store i32 %38, i32* %33, align 4 + %39 = getelementptr inbounds %struct.point, %struct.point* %4, i32 0, i32 1 + %40 = getelementptr inbounds %struct.point, %struct.point* %5, i32 0, i32 1 + %41 = load i32, i32* %40, align 4 + %42 = getelementptr inbounds %struct.point1, %struct.point1* %6, i32 0, i32 1 + %43 = load i32, i32* %42, align 4 + %44 = add nsw i32 %41, %43 + store i32 %44, i32* %39, align 4 + %45 = bitcast %struct.point* %4 to i64* + %46 = load i64, i64* %45, align 4 + ret i64 %46 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #2 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} +!5 = distinct !{!5, !6} +!6 = !{!"llvm.loop.mustprogress"} diff --git a/internal/cabi/_testdata/arch/riscv64/empty.ll b/internal/cabi/_testdata/arch/riscv64/empty.ll new file mode 100644 index 00000000..15f86f70 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/empty.ll @@ -0,0 +1,65 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %3, i8* align 1 %4, i64 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1(i32 noundef signext %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @demo2(i32 noundef signext %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local signext i32 @demo3(i32 noundef signext %0, i32 noundef signext %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_float32.ll b/internal/cabi/_testdata/arch/riscv64/struct_float32.ll new file mode 100644 index 00000000..d714e387 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_float32.ll @@ -0,0 +1,286 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + %6 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %7 = bitcast float* %6 to i8* + %8 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 8 %8, i64 4, i1 false) + %9 = bitcast %struct.point1* %2 to i8* + %10 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %9, i8* align 4 %10, i64 4, i1 false) + %11 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %12 = bitcast i64* %5 to i8* + %13 = bitcast float* %11 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %12, i8* align 4 %13, i64 4, i1 false) + %14 = load i64, i64* %5, align 8 + ret i64 %14 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_float64.ll b/internal/cabi/_testdata/arch/riscv64/struct_float64.ll new file mode 100644 index 00000000..baecec8d --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_float64.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = bitcast double* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = bitcast double* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_int16.ll b/internal/cabi/_testdata/arch/riscv64/struct_int16.ll new file mode 100644 index 00000000..b90054bb --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_int16.ll @@ -0,0 +1,316 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i16 + store i16 %5, i16* %4, align 2 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 2 %7, i64 2, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i16, i16* %8, align 2 + %10 = zext i16 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 2 + %3 = alloca %struct.point3, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 2 + %3 = alloca %struct.point4, align 2 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.point5, align 2 + %3 = alloca %struct.point5, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 2 + %3 = alloca %struct.point6, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo7([2 x i64] %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo8([2 x i64] %0) #0 { + %2 = alloca %struct.point8, align 2 + %3 = alloca %struct.point8, align 2 + %4 = bitcast %struct.point8* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 2 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 16, i1 false) + %7 = bitcast %struct.point8* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 2 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_int32.ll b/internal/cabi/_testdata/arch/riscv64/struct_int32.ll new file mode 100644 index 00000000..07011f89 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_int32.ll @@ -0,0 +1,280 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i32 + store i32 %5, i32* %4, align 4 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 4, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + %10 = zext i32 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 4 + %3 = alloca %struct.point3, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo4([2 x i64] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point4* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_int64.ll b/internal/cabi/_testdata/arch/riscv64/struct_int64.ll new file mode 100644 index 00000000..e63988f6 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_int64.ll @@ -0,0 +1,266 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_int8.ll b/internal/cabi/_testdata/arch/riscv64/struct_int8.ll new file mode 100644 index 00000000..3d752b42 --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_int8.ll @@ -0,0 +1,388 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = trunc i64 %0 to i8 + store i8 %5, i8* %4, align 1 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 1 %7, i64 1, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8, i8* %8, align 1 + %10 = zext i8 %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point2* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 2, i1 false) + %8 = bitcast %struct.point2* %2 to i8* + %9 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 2, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point2* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 2, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo3(i64 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point3* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 3, i1 false) + %8 = bitcast %struct.point3* %2 to i8* + %9 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 3, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point3* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 3, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point4* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point4* %2 to i8* + %9 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point4* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo5(i64 %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point5* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 5, i1 false) + %8 = bitcast %struct.point5* %2 to i8* + %9 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 5, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point5* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 5, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo6(i64 %0) #0 { + %2 = alloca %struct.point6, align 1 + %3 = alloca %struct.point6, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point6* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point6* %2 to i8* + %9 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point6* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 1 + %3 = alloca %struct.point7, align 1 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 7, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 7, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 7, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 1 + %3 = alloca %struct.point8, align 1 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 1 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 1 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 1 + %3 = alloca %struct.point9, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point9* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 9, i1 false) + %8 = bitcast %struct.point9* %2 to i8* + %9 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 9, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point9* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 9, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo10([2 x i64] %0) #0 { + %2 = alloca %struct.point10, align 1 + %3 = alloca %struct.point10, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point10* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point10* %2 to i8* + %9 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point10* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.point11, align 1 + %3 = alloca %struct.point11, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point11* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 11, i1 false) + %8 = bitcast %struct.point11* %2 to i8* + %9 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 11, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point11* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 11, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 1 + %3 = alloca %struct.point12, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point12* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point12* %2 to i8* + %9 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point12* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo13([2 x i64] %0) #0 { + %2 = alloca %struct.point13, align 1 + %3 = alloca %struct.point13, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point13* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 13, i1 false) + %8 = bitcast %struct.point13* %2 to i8* + %9 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 13, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point13* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 13, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo14([2 x i64] %0) #0 { + %2 = alloca %struct.point14, align 1 + %3 = alloca %struct.point14, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point14* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 14, i1 false) + %8 = bitcast %struct.point14* %2 to i8* + %9 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 14, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point14* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 14, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 1 + %3 = alloca %struct.point15, align 1 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point15* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %6, i8* align 8 %7, i64 15, i1 false) + %8 = bitcast %struct.point15* %2 to i8* + %9 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %8, i8* align 1 %9, i64 15, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point15* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 1 %11, i64 15, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo16([2 x i64] %0) #0 { + %2 = alloca %struct.point16, align 1 + %3 = alloca %struct.point16, align 1 + %4 = bitcast %struct.point16* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 1 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 16, i1 false) + %7 = bitcast %struct.point16* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 1 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %5, i8* align 1 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_mixed.ll b/internal/cabi/_testdata/arch/riscv64/struct_mixed.ll new file mode 100644 index 00000000..ace3a85c --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_mixed.ll @@ -0,0 +1,16094 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point1* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point1* %2 to i8* + %9 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point1* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo2(i64 %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + %4 = bitcast %struct.point2* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point2* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo3([2 x i64] %0) #0 { + %2 = alloca %struct.point3, align 8 + %3 = alloca %struct.point3, align 8 + %4 = bitcast %struct.point3* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point3* %2 to i8* + %6 = bitcast %struct.point3* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point3* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo4(i64 %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + %4 = bitcast %struct.point4* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point4* %2 to i8* + %6 = bitcast %struct.point4* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point4* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo5([2 x i64] %0) #0 { + %2 = alloca %struct.point5, align 8 + %3 = alloca %struct.point5, align 8 + %4 = bitcast %struct.point5* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point5* %2 to i8* + %6 = bitcast %struct.point5* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point5* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo6([2 x i64] %0) #0 { + %2 = alloca %struct.point6, align 8 + %3 = alloca %struct.point6, align 8 + %4 = bitcast %struct.point6* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point6* %2 to i8* + %6 = bitcast %struct.point6* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point6* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo7(i64 %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point7* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point7* %2 to i8* + %9 = bitcast %struct.point7* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point7* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo8(i64 %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + %4 = bitcast %struct.point8* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point8* %2 to i8* + %6 = bitcast %struct.point8* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point8* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo9([2 x i64] %0) #0 { + %2 = alloca %struct.point9, align 8 + %3 = alloca %struct.point9, align 8 + %4 = bitcast %struct.point9* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point9* %2 to i8* + %6 = bitcast %struct.point9* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point9* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo10(i64 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = bitcast %struct.point10* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point10* %2 to i8* + %6 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point10* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo11([2 x i64] %0) #0 { + %2 = alloca %struct.point11, align 8 + %3 = alloca %struct.point11, align 8 + %4 = bitcast %struct.point11* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point11* %2 to i8* + %6 = bitcast %struct.point11* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point11* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo12([2 x i64] %0) #0 { + %2 = alloca %struct.point12, align 8 + %3 = alloca %struct.point12, align 8 + %4 = bitcast %struct.point12* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point12* %2 to i8* + %6 = bitcast %struct.point12* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point12* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo13(i64 %0) #0 { + %2 = alloca %struct.point13, align 4 + %3 = alloca %struct.point13, align 4 + %4 = bitcast %struct.point13* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point13* %2 to i8* + %6 = bitcast %struct.point13* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point13* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo14(i64 %0) #0 { + %2 = alloca %struct.point14, align 4 + %3 = alloca %struct.point14, align 4 + %4 = bitcast %struct.point14* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point14* %2 to i8* + %6 = bitcast %struct.point14* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point14* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo15([2 x i64] %0) #0 { + %2 = alloca %struct.point15, align 8 + %3 = alloca %struct.point15, align 8 + %4 = bitcast %struct.point15* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point15* %2 to i8* + %6 = bitcast %struct.point15* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point15* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo16(i64 %0) #0 { + %2 = alloca %struct.point16, align 4 + %3 = alloca %struct.point16, align 4 + %4 = bitcast %struct.point16* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point16* %2 to i8* + %6 = bitcast %struct.point16* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point16* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo17([2 x i64] %0) #0 { + %2 = alloca %struct.point17, align 8 + %3 = alloca %struct.point17, align 8 + %4 = bitcast %struct.point17* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point17* %2 to i8* + %6 = bitcast %struct.point17* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point17* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo18([2 x i64] %0) #0 { + %2 = alloca %struct.point18, align 8 + %3 = alloca %struct.point18, align 8 + %4 = bitcast %struct.point18* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point18* %2 to i8* + %6 = bitcast %struct.point18* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point18* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo19([2 x i64] %0) #0 { + %2 = alloca %struct.point19, align 8 + %3 = alloca %struct.point19, align 8 + %4 = bitcast %struct.point19* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point19* %2 to i8* + %6 = bitcast %struct.point19* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point19* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo20([2 x i64] %0) #0 { + %2 = alloca %struct.point20, align 8 + %3 = alloca %struct.point20, align 8 + %4 = bitcast %struct.point20* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point20* %2 to i8* + %6 = bitcast %struct.point20* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point20* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo21([2 x i64] %0) #0 { + %2 = alloca %struct.point21, align 8 + %3 = alloca %struct.point21, align 8 + %4 = bitcast %struct.point21* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point21* %2 to i8* + %6 = bitcast %struct.point21* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point21* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo22([2 x i64] %0) #0 { + %2 = alloca %struct.point22, align 8 + %3 = alloca %struct.point22, align 8 + %4 = bitcast %struct.point22* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point22* %2 to i8* + %6 = bitcast %struct.point22* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point22* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo23([2 x i64] %0) #0 { + %2 = alloca %struct.point23, align 8 + %3 = alloca %struct.point23, align 8 + %4 = bitcast %struct.point23* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point23* %2 to i8* + %6 = bitcast %struct.point23* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point23* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo24([2 x i64] %0) #0 { + %2 = alloca %struct.point24, align 8 + %3 = alloca %struct.point24, align 8 + %4 = bitcast %struct.point24* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point24* %2 to i8* + %6 = bitcast %struct.point24* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point24* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo25(i64 %0) #0 { + %2 = alloca %struct.point25, align 4 + %3 = alloca %struct.point25, align 4 + %4 = bitcast %struct.point25* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point25* %2 to i8* + %6 = bitcast %struct.point25* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point25* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo26(i64 %0) #0 { + %2 = alloca %struct.point26, align 4 + %3 = alloca %struct.point26, align 4 + %4 = bitcast %struct.point26* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point26* %2 to i8* + %6 = bitcast %struct.point26* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point26* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo27(i64 %0) #0 { + %2 = alloca %struct.point27, align 4 + %3 = alloca %struct.point27, align 4 + %4 = bitcast %struct.point27* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point27* %2 to i8* + %6 = bitcast %struct.point27* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point27* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo28([2 x i64] %0) #0 { + %2 = alloca %struct.point28, align 8 + %3 = alloca %struct.point28, align 8 + %4 = bitcast %struct.point28* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point28* %2 to i8* + %6 = bitcast %struct.point28* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point28* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo29([2 x i64] %0) #0 { + %2 = alloca %struct.point29, align 8 + %3 = alloca %struct.point29, align 8 + %4 = bitcast %struct.point29* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point29* %2 to i8* + %6 = bitcast %struct.point29* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point29* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo30([2 x i64] %0) #0 { + %2 = alloca %struct.point30, align 8 + %3 = alloca %struct.point30, align 8 + %4 = bitcast %struct.point30* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point30* %2 to i8* + %6 = bitcast %struct.point30* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point30* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo31([2 x i64] %0) #0 { + %2 = alloca %struct.point31, align 8 + %3 = alloca %struct.point31, align 8 + %4 = bitcast %struct.point31* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point31* %2 to i8* + %6 = bitcast %struct.point31* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point31* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo32([2 x i64] %0) #0 { + %2 = alloca %struct.point32, align 8 + %3 = alloca %struct.point32, align 8 + %4 = bitcast %struct.point32* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point32* %2 to i8* + %6 = bitcast %struct.point32* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point32* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo33([2 x i64] %0) #0 { + %2 = alloca %struct.point33, align 8 + %3 = alloca %struct.point33, align 8 + %4 = bitcast %struct.point33* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point33* %2 to i8* + %6 = bitcast %struct.point33* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point33* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo34([2 x i64] %0) #0 { + %2 = alloca %struct.point34, align 8 + %3 = alloca %struct.point34, align 8 + %4 = bitcast %struct.point34* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point34* %2 to i8* + %6 = bitcast %struct.point34* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point34* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo35([2 x i64] %0) #0 { + %2 = alloca %struct.point35, align 8 + %3 = alloca %struct.point35, align 8 + %4 = bitcast %struct.point35* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point35* %2 to i8* + %6 = bitcast %struct.point35* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point35* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo36([2 x i64] %0) #0 { + %2 = alloca %struct.point36, align 8 + %3 = alloca %struct.point36, align 8 + %4 = bitcast %struct.point36* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point36* %2 to i8* + %6 = bitcast %struct.point36* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point36* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo37([2 x i64] %0) #0 { + %2 = alloca %struct.point37, align 8 + %3 = alloca %struct.point37, align 8 + %4 = bitcast %struct.point37* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point37* %2 to i8* + %6 = bitcast %struct.point37* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point37* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo38([2 x i64] %0) #0 { + %2 = alloca %struct.point38, align 8 + %3 = alloca %struct.point38, align 8 + %4 = bitcast %struct.point38* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point38* %2 to i8* + %6 = bitcast %struct.point38* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point38* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo39([2 x i64] %0) #0 { + %2 = alloca %struct.point39, align 8 + %3 = alloca %struct.point39, align 8 + %4 = bitcast %struct.point39* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point39* %2 to i8* + %6 = bitcast %struct.point39* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point39* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo40([2 x i64] %0) #0 { + %2 = alloca %struct.point40, align 8 + %3 = alloca %struct.point40, align 8 + %4 = bitcast %struct.point40* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point40* %2 to i8* + %6 = bitcast %struct.point40* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point40* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo41([2 x i64] %0) #0 { + %2 = alloca %struct.point41, align 8 + %3 = alloca %struct.point41, align 8 + %4 = bitcast %struct.point41* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point41* %2 to i8* + %6 = bitcast %struct.point41* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point41* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo42([2 x i64] %0) #0 { + %2 = alloca %struct.point42, align 8 + %3 = alloca %struct.point42, align 8 + %4 = bitcast %struct.point42* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point42* %2 to i8* + %6 = bitcast %struct.point42* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point42* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo43(i64 %0) #0 { + %2 = alloca %struct.point43, align 2 + %3 = alloca %struct.point43, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point43* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point43* %2 to i8* + %9 = bitcast %struct.point43* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point43* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo44(i64 %0) #0 { + %2 = alloca %struct.point44, align 2 + %3 = alloca %struct.point44, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point44* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point44* %2 to i8* + %9 = bitcast %struct.point44* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point44* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo45(i64 %0) #0 { + %2 = alloca %struct.point45, align 2 + %3 = alloca %struct.point45, align 2 + %4 = bitcast %struct.point45* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point45* %2 to i8* + %6 = bitcast %struct.point45* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point45* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo46(i64 %0) #0 { + %2 = alloca %struct.point46, align 2 + %3 = alloca %struct.point46, align 2 + %4 = bitcast %struct.point46* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point46* %2 to i8* + %6 = bitcast %struct.point46* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point46* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo47([2 x i64] %0) #0 { + %2 = alloca %struct.point47, align 4 + %3 = alloca %struct.point47, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point47* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point47* %2 to i8* + %9 = bitcast %struct.point47* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point47* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo48([2 x i64] %0) #0 { + %2 = alloca %struct.point48, align 4 + %3 = alloca %struct.point48, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point48* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point48* %2 to i8* + %9 = bitcast %struct.point48* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point48* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo49(i64 %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + %4 = bitcast %struct.point49* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point49* %2 to i8* + %6 = bitcast %struct.point49* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point49* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo50([2 x i64] %0) #0 { + %2 = alloca %struct.point50, align 2 + %3 = alloca %struct.point50, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point50* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point50* %2 to i8* + %9 = bitcast %struct.point50* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point50* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo51([2 x i64] %0) #0 { + %2 = alloca %struct.point51, align 2 + %3 = alloca %struct.point51, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point51* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point51* %2 to i8* + %9 = bitcast %struct.point51* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point51* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo52([2 x i64] %0) #0 { + %2 = alloca %struct.point52, align 4 + %3 = alloca %struct.point52, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point52* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point52* %2 to i8* + %9 = bitcast %struct.point52* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point52* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo53([2 x i64] %0) #0 { + %2 = alloca %struct.point53, align 4 + %3 = alloca %struct.point53, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point53* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point53* %2 to i8* + %9 = bitcast %struct.point53* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point53* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo54([2 x i64] %0) #0 { + %2 = alloca %struct.point54, align 4 + %3 = alloca %struct.point54, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point54* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point54* %2 to i8* + %9 = bitcast %struct.point54* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point54* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo55([2 x i64] %0) #0 { + %2 = alloca %struct.point55, align 4 + %3 = alloca %struct.point55, align 4 + %4 = bitcast %struct.point55* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point55* %2 to i8* + %6 = bitcast %struct.point55* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point55* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo56([2 x i64] %0) #0 { + %2 = alloca %struct.point56, align 4 + %3 = alloca %struct.point56, align 4 + %4 = bitcast %struct.point56* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point56* %2 to i8* + %6 = bitcast %struct.point56* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point56* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo57([2 x i64] %0) #0 { + %2 = alloca %struct.point57, align 4 + %3 = alloca %struct.point57, align 4 + %4 = bitcast %struct.point57* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point57* %2 to i8* + %6 = bitcast %struct.point57* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point57* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo58([2 x i64] %0) #0 { + %2 = alloca %struct.point58, align 4 + %3 = alloca %struct.point58, align 4 + %4 = bitcast %struct.point58* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point58* %2 to i8* + %6 = bitcast %struct.point58* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point58* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo59([2 x i64] %0) #0 { + %2 = alloca %struct.point59, align 4 + %3 = alloca %struct.point59, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point59* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point59* %2 to i8* + %9 = bitcast %struct.point59* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point59* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo60([2 x i64] %0) #0 { + %2 = alloca %struct.point60, align 4 + %3 = alloca %struct.point60, align 4 + %4 = bitcast %struct.point60* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point60* %2 to i8* + %6 = bitcast %struct.point60* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point60* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo61([2 x i64] %0) #0 { + %2 = alloca %struct.point61, align 4 + %3 = alloca %struct.point61, align 4 + %4 = bitcast %struct.point61* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point61* %2 to i8* + %6 = bitcast %struct.point61* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point61* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo62([2 x i64] %0) #0 { + %2 = alloca %struct.point62, align 4 + %3 = alloca %struct.point62, align 4 + %4 = bitcast %struct.point62* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point62* %2 to i8* + %6 = bitcast %struct.point62* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point62* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo63([2 x i64] %0) #0 { + %2 = alloca %struct.point63, align 4 + %3 = alloca %struct.point63, align 4 + %4 = bitcast %struct.point63* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point63* %2 to i8* + %6 = bitcast %struct.point63* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point63* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo64(i64 %0) #0 { + %2 = alloca %struct.point64, align 2 + %3 = alloca %struct.point64, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point64* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point64* %2 to i8* + %9 = bitcast %struct.point64* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point64* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo65(i64 %0) #0 { + %2 = alloca %struct.point65, align 2 + %3 = alloca %struct.point65, align 2 + %4 = bitcast %struct.point65* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point65* %2 to i8* + %6 = bitcast %struct.point65* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point65* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo66(i64 %0) #0 { + %2 = alloca %struct.point66, align 2 + %3 = alloca %struct.point66, align 2 + %4 = bitcast %struct.point66* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point66* %2 to i8* + %6 = bitcast %struct.point66* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point66* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo67([2 x i64] %0) #0 { + %2 = alloca %struct.point67, align 2 + %3 = alloca %struct.point67, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point67* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point67* %2 to i8* + %9 = bitcast %struct.point67* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point67* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo68([2 x i64] %0) #0 { + %2 = alloca %struct.point68, align 4 + %3 = alloca %struct.point68, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point68* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point68* %2 to i8* + %9 = bitcast %struct.point68* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point68* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo69([2 x i64] %0) #0 { + %2 = alloca %struct.point69, align 4 + %3 = alloca %struct.point69, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point69* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point69* %2 to i8* + %9 = bitcast %struct.point69* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point69* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo70(i64 %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + %4 = bitcast %struct.point70* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point70* %2 to i8* + %6 = bitcast %struct.point70* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point70* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo71([2 x i64] %0) #0 { + %2 = alloca %struct.point71, align 2 + %3 = alloca %struct.point71, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point71* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point71* %2 to i8* + %9 = bitcast %struct.point71* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point71* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo72([2 x i64] %0) #0 { + %2 = alloca %struct.point72, align 2 + %3 = alloca %struct.point72, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point72* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point72* %2 to i8* + %9 = bitcast %struct.point72* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point72* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo73([2 x i64] %0) #0 { + %2 = alloca %struct.point73, align 4 + %3 = alloca %struct.point73, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point73* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point73* %2 to i8* + %9 = bitcast %struct.point73* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point73* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo74([2 x i64] %0) #0 { + %2 = alloca %struct.point74, align 4 + %3 = alloca %struct.point74, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point74* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point74* %2 to i8* + %9 = bitcast %struct.point74* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point74* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo75([2 x i64] %0) #0 { + %2 = alloca %struct.point75, align 4 + %3 = alloca %struct.point75, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point75* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point75* %2 to i8* + %9 = bitcast %struct.point75* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point75* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo76([2 x i64] %0) #0 { + %2 = alloca %struct.point76, align 4 + %3 = alloca %struct.point76, align 4 + %4 = bitcast %struct.point76* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point76* %2 to i8* + %6 = bitcast %struct.point76* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point76* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo77([2 x i64] %0) #0 { + %2 = alloca %struct.point77, align 4 + %3 = alloca %struct.point77, align 4 + %4 = bitcast %struct.point77* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point77* %2 to i8* + %6 = bitcast %struct.point77* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point77* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo78([2 x i64] %0) #0 { + %2 = alloca %struct.point78, align 4 + %3 = alloca %struct.point78, align 4 + %4 = bitcast %struct.point78* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point78* %2 to i8* + %6 = bitcast %struct.point78* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point78* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo79([2 x i64] %0) #0 { + %2 = alloca %struct.point79, align 4 + %3 = alloca %struct.point79, align 4 + %4 = bitcast %struct.point79* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point79* %2 to i8* + %6 = bitcast %struct.point79* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point79* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo80([2 x i64] %0) #0 { + %2 = alloca %struct.point80, align 4 + %3 = alloca %struct.point80, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point80* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point80* %2 to i8* + %9 = bitcast %struct.point80* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point80* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo81([2 x i64] %0) #0 { + %2 = alloca %struct.point81, align 4 + %3 = alloca %struct.point81, align 4 + %4 = bitcast %struct.point81* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point81* %2 to i8* + %6 = bitcast %struct.point81* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point81* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo82([2 x i64] %0) #0 { + %2 = alloca %struct.point82, align 4 + %3 = alloca %struct.point82, align 4 + %4 = bitcast %struct.point82* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point82* %2 to i8* + %6 = bitcast %struct.point82* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point82* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo83([2 x i64] %0) #0 { + %2 = alloca %struct.point83, align 4 + %3 = alloca %struct.point83, align 4 + %4 = bitcast %struct.point83* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point83* %2 to i8* + %6 = bitcast %struct.point83* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point83* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo84([2 x i64] %0) #0 { + %2 = alloca %struct.point84, align 4 + %3 = alloca %struct.point84, align 4 + %4 = bitcast %struct.point84* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point84* %2 to i8* + %6 = bitcast %struct.point84* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point84* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo85(i64 %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + %4 = bitcast %struct.point85* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point85* %2 to i8* + %6 = bitcast %struct.point85* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point85* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo86([2 x i64] %0) #0 { + %2 = alloca %struct.point86, align 4 + %3 = alloca %struct.point86, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point86* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point86* %2 to i8* + %9 = bitcast %struct.point86* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point86* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo87([2 x i64] %0) #0 { + %2 = alloca %struct.point87, align 4 + %3 = alloca %struct.point87, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point87* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point87* %2 to i8* + %9 = bitcast %struct.point87* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point87* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo88([2 x i64] %0) #0 { + %2 = alloca %struct.point88, align 4 + %3 = alloca %struct.point88, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point88* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point88* %2 to i8* + %9 = bitcast %struct.point88* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point88* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo89([2 x i64] %0) #0 { + %2 = alloca %struct.point89, align 4 + %3 = alloca %struct.point89, align 4 + %4 = bitcast %struct.point89* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point89* %2 to i8* + %6 = bitcast %struct.point89* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point89* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo90([2 x i64] %0) #0 { + %2 = alloca %struct.point90, align 4 + %3 = alloca %struct.point90, align 4 + %4 = bitcast %struct.point90* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point90* %2 to i8* + %6 = bitcast %struct.point90* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point90* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo91([2 x i64] %0) #0 { + %2 = alloca %struct.point91, align 4 + %3 = alloca %struct.point91, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point91* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point91* %2 to i8* + %9 = bitcast %struct.point91* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point91* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo92([2 x i64] %0) #0 { + %2 = alloca %struct.point92, align 4 + %3 = alloca %struct.point92, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point92* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point92* %2 to i8* + %9 = bitcast %struct.point92* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point92* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo93([2 x i64] %0) #0 { + %2 = alloca %struct.point93, align 4 + %3 = alloca %struct.point93, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point93* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point93* %2 to i8* + %9 = bitcast %struct.point93* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point93* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo94([2 x i64] %0) #0 { + %2 = alloca %struct.point94, align 4 + %3 = alloca %struct.point94, align 4 + %4 = bitcast %struct.point94* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point94* %2 to i8* + %6 = bitcast %struct.point94* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point94* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo95([2 x i64] %0) #0 { + %2 = alloca %struct.point95, align 4 + %3 = alloca %struct.point95, align 4 + %4 = bitcast %struct.point95* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point95* %2 to i8* + %6 = bitcast %struct.point95* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point95* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo96([2 x i64] %0) #0 { + %2 = alloca %struct.point96, align 4 + %3 = alloca %struct.point96, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point96* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point96* %2 to i8* + %9 = bitcast %struct.point96* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point96* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo97([2 x i64] %0) #0 { + %2 = alloca %struct.point97, align 4 + %3 = alloca %struct.point97, align 4 + %4 = bitcast %struct.point97* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point97* %2 to i8* + %6 = bitcast %struct.point97* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point97* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo98([2 x i64] %0) #0 { + %2 = alloca %struct.point98, align 4 + %3 = alloca %struct.point98, align 4 + %4 = bitcast %struct.point98* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point98* %2 to i8* + %6 = bitcast %struct.point98* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point98* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo99([2 x i64] %0) #0 { + %2 = alloca %struct.point99, align 4 + %3 = alloca %struct.point99, align 4 + %4 = bitcast %struct.point99* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point99* %2 to i8* + %6 = bitcast %struct.point99* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point99* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo100([2 x i64] %0) #0 { + %2 = alloca %struct.point100, align 4 + %3 = alloca %struct.point100, align 4 + %4 = bitcast %struct.point100* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point100* %2 to i8* + %6 = bitcast %struct.point100* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point100* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo101([2 x i64] %0) #0 { + %2 = alloca %struct.point101, align 4 + %3 = alloca %struct.point101, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point101* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point101* %2 to i8* + %9 = bitcast %struct.point101* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point101* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo102([2 x i64] %0) #0 { + %2 = alloca %struct.point102, align 4 + %3 = alloca %struct.point102, align 4 + %4 = bitcast %struct.point102* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point102* %2 to i8* + %6 = bitcast %struct.point102* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point102* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo103([2 x i64] %0) #0 { + %2 = alloca %struct.point103, align 4 + %3 = alloca %struct.point103, align 4 + %4 = bitcast %struct.point103* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point103* %2 to i8* + %6 = bitcast %struct.point103* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point103* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo104([2 x i64] %0) #0 { + %2 = alloca %struct.point104, align 4 + %3 = alloca %struct.point104, align 4 + %4 = bitcast %struct.point104* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point104* %2 to i8* + %6 = bitcast %struct.point104* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point104* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo105([2 x i64] %0) #0 { + %2 = alloca %struct.point105, align 4 + %3 = alloca %struct.point105, align 4 + %4 = bitcast %struct.point105* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point105* %2 to i8* + %6 = bitcast %struct.point105* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point105* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo106(i64 %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + %4 = bitcast %struct.point106* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point106* %2 to i8* + %6 = bitcast %struct.point106* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point106* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo107([2 x i64] %0) #0 { + %2 = alloca %struct.point107, align 4 + %3 = alloca %struct.point107, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point107* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point107* %2 to i8* + %9 = bitcast %struct.point107* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point107* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo108([2 x i64] %0) #0 { + %2 = alloca %struct.point108, align 4 + %3 = alloca %struct.point108, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point108* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point108* %2 to i8* + %9 = bitcast %struct.point108* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point108* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo109([2 x i64] %0) #0 { + %2 = alloca %struct.point109, align 4 + %3 = alloca %struct.point109, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point109* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point109* %2 to i8* + %9 = bitcast %struct.point109* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point109* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo110([2 x i64] %0) #0 { + %2 = alloca %struct.point110, align 4 + %3 = alloca %struct.point110, align 4 + %4 = bitcast %struct.point110* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point110* %2 to i8* + %6 = bitcast %struct.point110* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point110* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo111([2 x i64] %0) #0 { + %2 = alloca %struct.point111, align 4 + %3 = alloca %struct.point111, align 4 + %4 = bitcast %struct.point111* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point111* %2 to i8* + %6 = bitcast %struct.point111* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point111* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo112([2 x i64] %0) #0 { + %2 = alloca %struct.point112, align 4 + %3 = alloca %struct.point112, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point112* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point112* %2 to i8* + %9 = bitcast %struct.point112* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point112* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo113([2 x i64] %0) #0 { + %2 = alloca %struct.point113, align 4 + %3 = alloca %struct.point113, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point113* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point113* %2 to i8* + %9 = bitcast %struct.point113* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point113* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo114([2 x i64] %0) #0 { + %2 = alloca %struct.point114, align 4 + %3 = alloca %struct.point114, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point114* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point114* %2 to i8* + %9 = bitcast %struct.point114* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point114* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo115([2 x i64] %0) #0 { + %2 = alloca %struct.point115, align 4 + %3 = alloca %struct.point115, align 4 + %4 = bitcast %struct.point115* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point115* %2 to i8* + %6 = bitcast %struct.point115* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point115* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo116([2 x i64] %0) #0 { + %2 = alloca %struct.point116, align 4 + %3 = alloca %struct.point116, align 4 + %4 = bitcast %struct.point116* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point116* %2 to i8* + %6 = bitcast %struct.point116* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point116* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo117([2 x i64] %0) #0 { + %2 = alloca %struct.point117, align 4 + %3 = alloca %struct.point117, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point117* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point117* %2 to i8* + %9 = bitcast %struct.point117* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point117* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo118([2 x i64] %0) #0 { + %2 = alloca %struct.point118, align 4 + %3 = alloca %struct.point118, align 4 + %4 = bitcast %struct.point118* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point118* %2 to i8* + %6 = bitcast %struct.point118* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point118* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo119([2 x i64] %0) #0 { + %2 = alloca %struct.point119, align 4 + %3 = alloca %struct.point119, align 4 + %4 = bitcast %struct.point119* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point119* %2 to i8* + %6 = bitcast %struct.point119* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point119* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo120([2 x i64] %0) #0 { + %2 = alloca %struct.point120, align 4 + %3 = alloca %struct.point120, align 4 + %4 = bitcast %struct.point120* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point120* %2 to i8* + %6 = bitcast %struct.point120* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point120* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo121([2 x i64] %0) #0 { + %2 = alloca %struct.point121, align 4 + %3 = alloca %struct.point121, align 4 + %4 = bitcast %struct.point121* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point121* %2 to i8* + %6 = bitcast %struct.point121* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point121* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo122([2 x i64] %0) #0 { + %2 = alloca %struct.point122, align 4 + %3 = alloca %struct.point122, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point122* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point122* %2 to i8* + %9 = bitcast %struct.point122* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point122* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo123([2 x i64] %0) #0 { + %2 = alloca %struct.point123, align 4 + %3 = alloca %struct.point123, align 4 + %4 = bitcast %struct.point123* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point123* %2 to i8* + %6 = bitcast %struct.point123* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point123* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo124([2 x i64] %0) #0 { + %2 = alloca %struct.point124, align 4 + %3 = alloca %struct.point124, align 4 + %4 = bitcast %struct.point124* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point124* %2 to i8* + %6 = bitcast %struct.point124* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point124* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo125([2 x i64] %0) #0 { + %2 = alloca %struct.point125, align 4 + %3 = alloca %struct.point125, align 4 + %4 = bitcast %struct.point125* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point125* %2 to i8* + %6 = bitcast %struct.point125* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point125* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo126([2 x i64] %0) #0 { + %2 = alloca %struct.point126, align 4 + %3 = alloca %struct.point126, align 4 + %4 = bitcast %struct.point126* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point126* %2 to i8* + %6 = bitcast %struct.point126* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point126* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo127([2 x i64] %0) #0 { + %2 = alloca %struct.point127, align 4 + %3 = alloca %struct.point127, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point127* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point127* %2 to i8* + %9 = bitcast %struct.point127* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point127* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo128([2 x i64] %0) #0 { + %2 = alloca %struct.point128, align 4 + %3 = alloca %struct.point128, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point128* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point128* %2 to i8* + %9 = bitcast %struct.point128* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point128* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo129([2 x i64] %0) #0 { + %2 = alloca %struct.point129, align 4 + %3 = alloca %struct.point129, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point129* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point129* %2 to i8* + %9 = bitcast %struct.point129* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point129* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo130([2 x i64] %0) #0 { + %2 = alloca %struct.point130, align 4 + %3 = alloca %struct.point130, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point130* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point130* %2 to i8* + %9 = bitcast %struct.point130* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point130* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo131([2 x i64] %0) #0 { + %2 = alloca %struct.point131, align 4 + %3 = alloca %struct.point131, align 4 + %4 = bitcast %struct.point131* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point131* %2 to i8* + %6 = bitcast %struct.point131* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point131* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo132([2 x i64] %0) #0 { + %2 = alloca %struct.point132, align 4 + %3 = alloca %struct.point132, align 4 + %4 = bitcast %struct.point132* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point132* %2 to i8* + %6 = bitcast %struct.point132* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point132* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo133([2 x i64] %0) #0 { + %2 = alloca %struct.point133, align 4 + %3 = alloca %struct.point133, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point133* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point133* %2 to i8* + %9 = bitcast %struct.point133* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point133* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo134([2 x i64] %0) #0 { + %2 = alloca %struct.point134, align 4 + %3 = alloca %struct.point134, align 4 + %4 = bitcast %struct.point134* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point134* %2 to i8* + %6 = bitcast %struct.point134* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point134* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo135([2 x i64] %0) #0 { + %2 = alloca %struct.point135, align 4 + %3 = alloca %struct.point135, align 4 + %4 = bitcast %struct.point135* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point135* %2 to i8* + %6 = bitcast %struct.point135* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point135* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo136([2 x i64] %0) #0 { + %2 = alloca %struct.point136, align 4 + %3 = alloca %struct.point136, align 4 + %4 = bitcast %struct.point136* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point136* %2 to i8* + %6 = bitcast %struct.point136* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point136* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo137([2 x i64] %0) #0 { + %2 = alloca %struct.point137, align 4 + %3 = alloca %struct.point137, align 4 + %4 = bitcast %struct.point137* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point137* %2 to i8* + %6 = bitcast %struct.point137* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point137* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo138([2 x i64] %0) #0 { + %2 = alloca %struct.point138, align 4 + %3 = alloca %struct.point138, align 4 + %4 = bitcast %struct.point138* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point138* %2 to i8* + %6 = bitcast %struct.point138* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point138* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point139* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point139* %0 to i8* + %6 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point140* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point140* %0 to i8* + %6 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point141* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point141* %0 to i8* + %6 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point142* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point142* %0 to i8* + %6 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo143([2 x i64] %0) #0 { + %2 = alloca %struct.point143, align 4 + %3 = alloca %struct.point143, align 4 + %4 = bitcast %struct.point143* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point143* %2 to i8* + %6 = bitcast %struct.point143* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point143* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point144* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point144* %0 to i8* + %6 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point145* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point145* %0 to i8* + %6 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point146* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point146* %0 to i8* + %6 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point147* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point147* %0 to i8* + %6 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo148([2 x i64] %0) #0 { + %2 = alloca %struct.point148, align 4 + %3 = alloca %struct.point148, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point148* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point148* %2 to i8* + %9 = bitcast %struct.point148* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point148* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo149([2 x i64] %0) #0 { + %2 = alloca %struct.point149, align 4 + %3 = alloca %struct.point149, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point149* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point149* %2 to i8* + %9 = bitcast %struct.point149* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point149* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo150([2 x i64] %0) #0 { + %2 = alloca %struct.point150, align 4 + %3 = alloca %struct.point150, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point150* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point150* %2 to i8* + %9 = bitcast %struct.point150* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point150* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo151([2 x i64] %0) #0 { + %2 = alloca %struct.point151, align 4 + %3 = alloca %struct.point151, align 4 + %4 = bitcast %struct.point151* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point151* %2 to i8* + %6 = bitcast %struct.point151* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point151* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo152([2 x i64] %0) #0 { + %2 = alloca %struct.point152, align 4 + %3 = alloca %struct.point152, align 4 + %4 = bitcast %struct.point152* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point152* %2 to i8* + %6 = bitcast %struct.point152* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point152* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo153([2 x i64] %0) #0 { + %2 = alloca %struct.point153, align 4 + %3 = alloca %struct.point153, align 4 + %4 = bitcast %struct.point153* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point153* %2 to i8* + %6 = bitcast %struct.point153* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point153* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo154([2 x i64] %0) #0 { + %2 = alloca %struct.point154, align 4 + %3 = alloca %struct.point154, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point154* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point154* %2 to i8* + %9 = bitcast %struct.point154* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point154* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo155([2 x i64] %0) #0 { + %2 = alloca %struct.point155, align 4 + %3 = alloca %struct.point155, align 4 + %4 = bitcast %struct.point155* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point155* %2 to i8* + %6 = bitcast %struct.point155* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point155* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo156([2 x i64] %0) #0 { + %2 = alloca %struct.point156, align 4 + %3 = alloca %struct.point156, align 4 + %4 = bitcast %struct.point156* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point156* %2 to i8* + %6 = bitcast %struct.point156* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point156* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo157([2 x i64] %0) #0 { + %2 = alloca %struct.point157, align 4 + %3 = alloca %struct.point157, align 4 + %4 = bitcast %struct.point157* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point157* %2 to i8* + %6 = bitcast %struct.point157* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point157* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo158([2 x i64] %0) #0 { + %2 = alloca %struct.point158, align 4 + %3 = alloca %struct.point158, align 4 + %4 = bitcast %struct.point158* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point158* %2 to i8* + %6 = bitcast %struct.point158* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point158* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo159([2 x i64] %0) #0 { + %2 = alloca %struct.point159, align 4 + %3 = alloca %struct.point159, align 4 + %4 = bitcast %struct.point159* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point159* %2 to i8* + %6 = bitcast %struct.point159* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point159* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point160* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point160* %0 to i8* + %6 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point161* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point161* %0 to i8* + %6 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point162* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point162* %0 to i8* + %6 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point163* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point163* %0 to i8* + %6 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo164([2 x i64] %0) #0 { + %2 = alloca %struct.point164, align 4 + %3 = alloca %struct.point164, align 4 + %4 = bitcast %struct.point164* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point164* %2 to i8* + %6 = bitcast %struct.point164* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point164* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point165* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point165* %0 to i8* + %6 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point166* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point166* %0 to i8* + %6 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point167* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point167* %0 to i8* + %6 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point168* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point168* %0 to i8* + %6 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo169([2 x i64] %0) #0 { + %2 = alloca %struct.point169, align 4 + %3 = alloca %struct.point169, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point169* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point169* %2 to i8* + %9 = bitcast %struct.point169* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point169* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo170([2 x i64] %0) #0 { + %2 = alloca %struct.point170, align 4 + %3 = alloca %struct.point170, align 4 + %4 = bitcast %struct.point170* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point170* %2 to i8* + %6 = bitcast %struct.point170* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point170* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo171([2 x i64] %0) #0 { + %2 = alloca %struct.point171, align 4 + %3 = alloca %struct.point171, align 4 + %4 = bitcast %struct.point171* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point171* %2 to i8* + %6 = bitcast %struct.point171* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point171* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo172([2 x i64] %0) #0 { + %2 = alloca %struct.point172, align 4 + %3 = alloca %struct.point172, align 4 + %4 = bitcast %struct.point172* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point172* %2 to i8* + %6 = bitcast %struct.point172* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point172* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point173* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point173* %0 to i8* + %6 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point174* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point174* %0 to i8* + %6 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo175([2 x i64] %0) #0 { + %2 = alloca %struct.point175, align 4 + %3 = alloca %struct.point175, align 4 + %4 = bitcast %struct.point175* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point175* %2 to i8* + %6 = bitcast %struct.point175* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point175* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo176([2 x i64] %0) #0 { + %2 = alloca %struct.point176, align 4 + %3 = alloca %struct.point176, align 4 + %4 = bitcast %struct.point176* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point176* %2 to i8* + %6 = bitcast %struct.point176* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point176* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo177([2 x i64] %0) #0 { + %2 = alloca %struct.point177, align 4 + %3 = alloca %struct.point177, align 4 + %4 = bitcast %struct.point177* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point177* %2 to i8* + %6 = bitcast %struct.point177* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point177* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point178* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point178* %0 to i8* + %6 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point179* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point179* %0 to i8* + %6 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo180([2 x i64] %0) #0 { + %2 = alloca %struct.point180, align 4 + %3 = alloca %struct.point180, align 4 + %4 = bitcast %struct.point180* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point180* %2 to i8* + %6 = bitcast %struct.point180* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point180* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point181* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point181* %0 to i8* + %6 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point182* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point182* %0 to i8* + %6 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point183* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point183* %0 to i8* + %6 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point184* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point184* %0 to i8* + %6 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo185([2 x i64] %0) #0 { + %2 = alloca %struct.point185, align 4 + %3 = alloca %struct.point185, align 4 + %4 = bitcast %struct.point185* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point185* %2 to i8* + %6 = bitcast %struct.point185* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point185* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point186* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point186* %0 to i8* + %6 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point187* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point187* %0 to i8* + %6 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point188* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point188* %0 to i8* + %6 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point189* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point189* %0 to i8* + %6 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo190([2 x i64] %0) #0 { + %2 = alloca %struct.point190, align 4 + %3 = alloca %struct.point190, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point190* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point190* %2 to i8* + %9 = bitcast %struct.point190* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point190* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo191([2 x i64] %0) #0 { + %2 = alloca %struct.point191, align 4 + %3 = alloca %struct.point191, align 4 + %4 = bitcast %struct.point191* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point191* %2 to i8* + %6 = bitcast %struct.point191* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point191* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo192([2 x i64] %0) #0 { + %2 = alloca %struct.point192, align 4 + %3 = alloca %struct.point192, align 4 + %4 = bitcast %struct.point192* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point192* %2 to i8* + %6 = bitcast %struct.point192* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point192* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo193([2 x i64] %0) #0 { + %2 = alloca %struct.point193, align 4 + %3 = alloca %struct.point193, align 4 + %4 = bitcast %struct.point193* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point193* %2 to i8* + %6 = bitcast %struct.point193* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point193* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point194* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point194* %0 to i8* + %6 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point195* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point195* %0 to i8* + %6 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo196([2 x i64] %0) #0 { + %2 = alloca %struct.point196, align 4 + %3 = alloca %struct.point196, align 4 + %4 = bitcast %struct.point196* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point196* %2 to i8* + %6 = bitcast %struct.point196* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point196* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo197([2 x i64] %0) #0 { + %2 = alloca %struct.point197, align 4 + %3 = alloca %struct.point197, align 4 + %4 = bitcast %struct.point197* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point197* %2 to i8* + %6 = bitcast %struct.point197* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point197* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo198([2 x i64] %0) #0 { + %2 = alloca %struct.point198, align 4 + %3 = alloca %struct.point198, align 4 + %4 = bitcast %struct.point198* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point198* %2 to i8* + %6 = bitcast %struct.point198* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point198* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point199* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point199* %0 to i8* + %6 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point200* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point200* %0 to i8* + %6 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo201([2 x i64] %0) #0 { + %2 = alloca %struct.point201, align 4 + %3 = alloca %struct.point201, align 4 + %4 = bitcast %struct.point201* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point201* %2 to i8* + %6 = bitcast %struct.point201* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point201* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point202* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point202* %0 to i8* + %6 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point203* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point203* %0 to i8* + %6 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point204* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point204* %0 to i8* + %6 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point205* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point205* %0 to i8* + %6 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo206([2 x i64] %0) #0 { + %2 = alloca %struct.point206, align 4 + %3 = alloca %struct.point206, align 4 + %4 = bitcast %struct.point206* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point206* %2 to i8* + %6 = bitcast %struct.point206* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point206* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point207* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point207* %0 to i8* + %6 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point208* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point208* %0 to i8* + %6 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point209* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point209* %0 to i8* + %6 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point210* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point210* %0 to i8* + %6 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo211([2 x i64] %0) #0 { + %2 = alloca %struct.point211, align 4 + %3 = alloca %struct.point211, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point211* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point211* %2 to i8* + %9 = bitcast %struct.point211* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point211* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo212([2 x i64] %0) #0 { + %2 = alloca %struct.point212, align 4 + %3 = alloca %struct.point212, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point212* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point212* %2 to i8* + %9 = bitcast %struct.point212* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point212* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo213([2 x i64] %0) #0 { + %2 = alloca %struct.point213, align 4 + %3 = alloca %struct.point213, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point213* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point213* %2 to i8* + %9 = bitcast %struct.point213* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point213* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo214([2 x i64] %0) #0 { + %2 = alloca %struct.point214, align 4 + %3 = alloca %struct.point214, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point214* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point214* %2 to i8* + %9 = bitcast %struct.point214* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point214* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo215([2 x i64] %0) #0 { + %2 = alloca %struct.point215, align 4 + %3 = alloca %struct.point215, align 4 + %4 = bitcast %struct.point215* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point215* %2 to i8* + %6 = bitcast %struct.point215* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point215* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo216([2 x i64] %0) #0 { + %2 = alloca %struct.point216, align 4 + %3 = alloca %struct.point216, align 4 + %4 = bitcast %struct.point216* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point216* %2 to i8* + %6 = bitcast %struct.point216* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point216* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo217([2 x i64] %0) #0 { + %2 = alloca %struct.point217, align 4 + %3 = alloca %struct.point217, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point217* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point217* %2 to i8* + %9 = bitcast %struct.point217* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point217* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo218([2 x i64] %0) #0 { + %2 = alloca %struct.point218, align 4 + %3 = alloca %struct.point218, align 4 + %4 = bitcast %struct.point218* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point218* %2 to i8* + %6 = bitcast %struct.point218* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point218* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo219([2 x i64] %0) #0 { + %2 = alloca %struct.point219, align 4 + %3 = alloca %struct.point219, align 4 + %4 = bitcast %struct.point219* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point219* %2 to i8* + %6 = bitcast %struct.point219* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point219* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo220([2 x i64] %0) #0 { + %2 = alloca %struct.point220, align 4 + %3 = alloca %struct.point220, align 4 + %4 = bitcast %struct.point220* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point220* %2 to i8* + %6 = bitcast %struct.point220* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point220* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo221([2 x i64] %0) #0 { + %2 = alloca %struct.point221, align 4 + %3 = alloca %struct.point221, align 4 + %4 = bitcast %struct.point221* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point221* %2 to i8* + %6 = bitcast %struct.point221* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point221* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo222([2 x i64] %0) #0 { + %2 = alloca %struct.point222, align 4 + %3 = alloca %struct.point222, align 4 + %4 = bitcast %struct.point222* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point222* %2 to i8* + %6 = bitcast %struct.point222* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point222* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point223* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point223* %0 to i8* + %6 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point224* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point224* %0 to i8* + %6 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point225* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point225* %0 to i8* + %6 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point226* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point226* %0 to i8* + %6 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo227([2 x i64] %0) #0 { + %2 = alloca %struct.point227, align 4 + %3 = alloca %struct.point227, align 4 + %4 = bitcast %struct.point227* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point227* %2 to i8* + %6 = bitcast %struct.point227* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point227* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point228* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point228* %0 to i8* + %6 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point229* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point229* %0 to i8* + %6 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point230* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point230* %0 to i8* + %6 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point231* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point231* %0 to i8* + %6 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo232([2 x i64] %0) #0 { + %2 = alloca %struct.point232, align 4 + %3 = alloca %struct.point232, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point232* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point232* %2 to i8* + %9 = bitcast %struct.point232* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point232* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo233([2 x i64] %0) #0 { + %2 = alloca %struct.point233, align 4 + %3 = alloca %struct.point233, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point233* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point233* %2 to i8* + %9 = bitcast %struct.point233* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point233* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo234([2 x i64] %0) #0 { + %2 = alloca %struct.point234, align 4 + %3 = alloca %struct.point234, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point234* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point234* %2 to i8* + %9 = bitcast %struct.point234* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point234* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo235([2 x i64] %0) #0 { + %2 = alloca %struct.point235, align 4 + %3 = alloca %struct.point235, align 4 + %4 = bitcast %struct.point235* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point235* %2 to i8* + %6 = bitcast %struct.point235* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point235* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo236([2 x i64] %0) #0 { + %2 = alloca %struct.point236, align 4 + %3 = alloca %struct.point236, align 4 + %4 = bitcast %struct.point236* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point236* %2 to i8* + %6 = bitcast %struct.point236* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point236* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo237([2 x i64] %0) #0 { + %2 = alloca %struct.point237, align 4 + %3 = alloca %struct.point237, align 4 + %4 = bitcast %struct.point237* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point237* %2 to i8* + %6 = bitcast %struct.point237* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point237* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo238([2 x i64] %0) #0 { + %2 = alloca %struct.point238, align 4 + %3 = alloca %struct.point238, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point238* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point238* %2 to i8* + %9 = bitcast %struct.point238* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point238* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo239([2 x i64] %0) #0 { + %2 = alloca %struct.point239, align 4 + %3 = alloca %struct.point239, align 4 + %4 = bitcast %struct.point239* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point239* %2 to i8* + %6 = bitcast %struct.point239* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point239* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo240([2 x i64] %0) #0 { + %2 = alloca %struct.point240, align 4 + %3 = alloca %struct.point240, align 4 + %4 = bitcast %struct.point240* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point240* %2 to i8* + %6 = bitcast %struct.point240* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point240* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo241([2 x i64] %0) #0 { + %2 = alloca %struct.point241, align 4 + %3 = alloca %struct.point241, align 4 + %4 = bitcast %struct.point241* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point241* %2 to i8* + %6 = bitcast %struct.point241* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point241* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo242([2 x i64] %0) #0 { + %2 = alloca %struct.point242, align 4 + %3 = alloca %struct.point242, align 4 + %4 = bitcast %struct.point242* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point242* %2 to i8* + %6 = bitcast %struct.point242* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point242* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo243([2 x i64] %0) #0 { + %2 = alloca %struct.point243, align 4 + %3 = alloca %struct.point243, align 4 + %4 = bitcast %struct.point243* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point243* %2 to i8* + %6 = bitcast %struct.point243* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point243* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point244* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point244* %0 to i8* + %6 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point245* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point245* %0 to i8* + %6 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point246* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point246* %0 to i8* + %6 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point247* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point247* %0 to i8* + %6 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo248([2 x i64] %0) #0 { + %2 = alloca %struct.point248, align 4 + %3 = alloca %struct.point248, align 4 + %4 = bitcast %struct.point248* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point248* %2 to i8* + %6 = bitcast %struct.point248* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point248* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point249* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point249* %0 to i8* + %6 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point250* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point250* %0 to i8* + %6 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point251* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point251* %0 to i8* + %6 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point252* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point252* %0 to i8* + %6 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo253([2 x i64] %0) #0 { + %2 = alloca %struct.point253, align 4 + %3 = alloca %struct.point253, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point253* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point253* %2 to i8* + %9 = bitcast %struct.point253* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point253* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo254([2 x i64] %0) #0 { + %2 = alloca %struct.point254, align 4 + %3 = alloca %struct.point254, align 4 + %4 = bitcast %struct.point254* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point254* %2 to i8* + %6 = bitcast %struct.point254* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point254* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo255([2 x i64] %0) #0 { + %2 = alloca %struct.point255, align 4 + %3 = alloca %struct.point255, align 4 + %4 = bitcast %struct.point255* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point255* %2 to i8* + %6 = bitcast %struct.point255* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point255* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo256([2 x i64] %0) #0 { + %2 = alloca %struct.point256, align 4 + %3 = alloca %struct.point256, align 4 + %4 = bitcast %struct.point256* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point256* %2 to i8* + %6 = bitcast %struct.point256* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point256* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point257* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point257* %0 to i8* + %6 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point258* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point258* %0 to i8* + %6 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo259([2 x i64] %0) #0 { + %2 = alloca %struct.point259, align 4 + %3 = alloca %struct.point259, align 4 + %4 = bitcast %struct.point259* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point259* %2 to i8* + %6 = bitcast %struct.point259* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point259* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo260([2 x i64] %0) #0 { + %2 = alloca %struct.point260, align 4 + %3 = alloca %struct.point260, align 4 + %4 = bitcast %struct.point260* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point260* %2 to i8* + %6 = bitcast %struct.point260* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point260* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo261([2 x i64] %0) #0 { + %2 = alloca %struct.point261, align 4 + %3 = alloca %struct.point261, align 4 + %4 = bitcast %struct.point261* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point261* %2 to i8* + %6 = bitcast %struct.point261* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point261* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point262* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point262* %0 to i8* + %6 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point263* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point263* %0 to i8* + %6 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo264([2 x i64] %0) #0 { + %2 = alloca %struct.point264, align 4 + %3 = alloca %struct.point264, align 4 + %4 = bitcast %struct.point264* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point264* %2 to i8* + %6 = bitcast %struct.point264* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point264* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point265* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point265* %0 to i8* + %6 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point266* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point266* %0 to i8* + %6 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point267* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point267* %0 to i8* + %6 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point268* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point268* %0 to i8* + %6 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo269([2 x i64] %0) #0 { + %2 = alloca %struct.point269, align 4 + %3 = alloca %struct.point269, align 4 + %4 = bitcast %struct.point269* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point269* %2 to i8* + %6 = bitcast %struct.point269* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point269* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point270* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point270* %0 to i8* + %6 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point271* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point271* %0 to i8* + %6 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point272* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point272* %0 to i8* + %6 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point273* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point273* %0 to i8* + %6 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo274([2 x i64] %0) #0 { + %2 = alloca %struct.point274, align 4 + %3 = alloca %struct.point274, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point274* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point274* %2 to i8* + %9 = bitcast %struct.point274* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point274* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo275([2 x i64] %0) #0 { + %2 = alloca %struct.point275, align 4 + %3 = alloca %struct.point275, align 4 + %4 = bitcast %struct.point275* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point275* %2 to i8* + %6 = bitcast %struct.point275* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point275* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo276([2 x i64] %0) #0 { + %2 = alloca %struct.point276, align 4 + %3 = alloca %struct.point276, align 4 + %4 = bitcast %struct.point276* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point276* %2 to i8* + %6 = bitcast %struct.point276* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point276* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo277([2 x i64] %0) #0 { + %2 = alloca %struct.point277, align 4 + %3 = alloca %struct.point277, align 4 + %4 = bitcast %struct.point277* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point277* %2 to i8* + %6 = bitcast %struct.point277* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point277* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point278* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point278* %0 to i8* + %6 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point279* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point279* %0 to i8* + %6 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo280([2 x i64] %0) #0 { + %2 = alloca %struct.point280, align 4 + %3 = alloca %struct.point280, align 4 + %4 = bitcast %struct.point280* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point280* %2 to i8* + %6 = bitcast %struct.point280* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point280* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo281([2 x i64] %0) #0 { + %2 = alloca %struct.point281, align 4 + %3 = alloca %struct.point281, align 4 + %4 = bitcast %struct.point281* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point281* %2 to i8* + %6 = bitcast %struct.point281* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point281* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo282([2 x i64] %0) #0 { + %2 = alloca %struct.point282, align 4 + %3 = alloca %struct.point282, align 4 + %4 = bitcast %struct.point282* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point282* %2 to i8* + %6 = bitcast %struct.point282* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point282* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point283* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point283* %0 to i8* + %6 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point284* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point284* %0 to i8* + %6 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo285([2 x i64] %0) #0 { + %2 = alloca %struct.point285, align 4 + %3 = alloca %struct.point285, align 4 + %4 = bitcast %struct.point285* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point285* %2 to i8* + %6 = bitcast %struct.point285* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point285* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point286* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point286* %0 to i8* + %6 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point287* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point287* %0 to i8* + %6 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point288* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point288* %0 to i8* + %6 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point289* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point289* %0 to i8* + %6 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo290([2 x i64] %0) #0 { + %2 = alloca %struct.point290, align 4 + %3 = alloca %struct.point290, align 4 + %4 = bitcast %struct.point290* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point290* %2 to i8* + %6 = bitcast %struct.point290* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point290* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point291* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point291* %0 to i8* + %6 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point292* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point292* %0 to i8* + %6 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point293* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point293* %0 to i8* + %6 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point294* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point294* %0 to i8* + %6 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo295(i64 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point295* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 4, i1 false) + %8 = bitcast %struct.point295* %2 to i8* + %9 = bitcast %struct.point295* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 4, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point295* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 4, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo296(i64 %0) #0 { + %2 = alloca %struct.point296, align 2 + %3 = alloca %struct.point296, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point296* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point296* %2 to i8* + %9 = bitcast %struct.point296* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point296* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo297(i64 %0) #0 { + %2 = alloca %struct.point297, align 2 + %3 = alloca %struct.point297, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point297* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point297* %2 to i8* + %9 = bitcast %struct.point297* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point297* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo298(i64 %0) #0 { + %2 = alloca %struct.point298, align 2 + %3 = alloca %struct.point298, align 2 + %4 = bitcast %struct.point298* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point298* %2 to i8* + %6 = bitcast %struct.point298* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point298* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo299([2 x i64] %0) #0 { + %2 = alloca %struct.point299, align 4 + %3 = alloca %struct.point299, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point299* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point299* %2 to i8* + %9 = bitcast %struct.point299* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point299* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo300([2 x i64] %0) #0 { + %2 = alloca %struct.point300, align 4 + %3 = alloca %struct.point300, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point300* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point300* %2 to i8* + %9 = bitcast %struct.point300* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point300* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo301(i64 %0) #0 { + %2 = alloca %struct.point301, align 2 + %3 = alloca %struct.point301, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point301* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point301* %2 to i8* + %9 = bitcast %struct.point301* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point301* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo302(i64 %0) #0 { + %2 = alloca %struct.point302, align 2 + %3 = alloca %struct.point302, align 2 + %4 = bitcast %struct.point302* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point302* %2 to i8* + %6 = bitcast %struct.point302* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point302* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo303(i64 %0) #0 { + %2 = alloca %struct.point303, align 2 + %3 = alloca %struct.point303, align 2 + %4 = bitcast %struct.point303* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point303* %2 to i8* + %6 = bitcast %struct.point303* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point303* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo304([2 x i64] %0) #0 { + %2 = alloca %struct.point304, align 4 + %3 = alloca %struct.point304, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point304* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point304* %2 to i8* + %9 = bitcast %struct.point304* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point304* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo305([2 x i64] %0) #0 { + %2 = alloca %struct.point305, align 4 + %3 = alloca %struct.point305, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point305* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point305* %2 to i8* + %9 = bitcast %struct.point305* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point305* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo306(i64 %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + %4 = bitcast %struct.point306* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point306* %2 to i8* + %6 = bitcast %struct.point306* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point306* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo307([2 x i64] %0) #0 { + %2 = alloca %struct.point307, align 4 + %3 = alloca %struct.point307, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point307* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point307* %2 to i8* + %9 = bitcast %struct.point307* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point307* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo308([2 x i64] %0) #0 { + %2 = alloca %struct.point308, align 4 + %3 = alloca %struct.point308, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point308* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point308* %2 to i8* + %9 = bitcast %struct.point308* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point308* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo309([2 x i64] %0) #0 { + %2 = alloca %struct.point309, align 4 + %3 = alloca %struct.point309, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point309* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point309* %2 to i8* + %9 = bitcast %struct.point309* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point309* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo310([2 x i64] %0) #0 { + %2 = alloca %struct.point310, align 4 + %3 = alloca %struct.point310, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point310* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point310* %2 to i8* + %9 = bitcast %struct.point310* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point310* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo311(i64 %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + %4 = bitcast %struct.point311* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point311* %2 to i8* + %6 = bitcast %struct.point311* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point311* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo312([2 x i64] %0) #0 { + %2 = alloca %struct.point312, align 4 + %3 = alloca %struct.point312, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point312* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point312* %2 to i8* + %9 = bitcast %struct.point312* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point312* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo313([2 x i64] %0) #0 { + %2 = alloca %struct.point313, align 4 + %3 = alloca %struct.point313, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point313* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point313* %2 to i8* + %9 = bitcast %struct.point313* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point313* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo314([2 x i64] %0) #0 { + %2 = alloca %struct.point314, align 4 + %3 = alloca %struct.point314, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point314* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point314* %2 to i8* + %9 = bitcast %struct.point314* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point314* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo315([2 x i64] %0) #0 { + %2 = alloca %struct.point315, align 4 + %3 = alloca %struct.point315, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point315* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point315* %2 to i8* + %9 = bitcast %struct.point315* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point315* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo316(i64 %0) #0 { + %2 = alloca %struct.point316, align 2 + %3 = alloca %struct.point316, align 2 + %4 = alloca i64, align 8 + %5 = alloca i64, align 8 + store i64 %0, i64* %4, align 8 + %6 = bitcast %struct.point316* %3 to i8* + %7 = bitcast i64* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 6, i1 false) + %8 = bitcast %struct.point316* %2 to i8* + %9 = bitcast %struct.point316* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 6, i1 false) + %10 = bitcast i64* %5 to i8* + %11 = bitcast %struct.point316* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 6, i1 false) + %12 = load i64, i64* %5, align 8 + ret i64 %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo317(i64 %0) #0 { + %2 = alloca %struct.point317, align 2 + %3 = alloca %struct.point317, align 2 + %4 = bitcast %struct.point317* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point317* %2 to i8* + %6 = bitcast %struct.point317* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point317* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo318(i64 %0) #0 { + %2 = alloca %struct.point318, align 2 + %3 = alloca %struct.point318, align 2 + %4 = bitcast %struct.point318* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point318* %2 to i8* + %6 = bitcast %struct.point318* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point318* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo319([2 x i64] %0) #0 { + %2 = alloca %struct.point319, align 2 + %3 = alloca %struct.point319, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point319* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point319* %2 to i8* + %9 = bitcast %struct.point319* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point319* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo320([2 x i64] %0) #0 { + %2 = alloca %struct.point320, align 4 + %3 = alloca %struct.point320, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point320* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point320* %2 to i8* + %9 = bitcast %struct.point320* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point320* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo321([2 x i64] %0) #0 { + %2 = alloca %struct.point321, align 4 + %3 = alloca %struct.point321, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point321* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point321* %2 to i8* + %9 = bitcast %struct.point321* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point321* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo322(i64 %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + %4 = bitcast %struct.point322* %3 to i64* + store i64 %0, i64* %4, align 2 + %5 = bitcast %struct.point322* %2 to i8* + %6 = bitcast %struct.point322* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %5, i8* align 2 %6, i64 8, i1 false) + %7 = bitcast %struct.point322* %2 to i64* + %8 = load i64, i64* %7, align 2 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo323([2 x i64] %0) #0 { + %2 = alloca %struct.point323, align 2 + %3 = alloca %struct.point323, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point323* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point323* %2 to i8* + %9 = bitcast %struct.point323* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point323* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo324([2 x i64] %0) #0 { + %2 = alloca %struct.point324, align 2 + %3 = alloca %struct.point324, align 2 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point324* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %6, i8* align 8 %7, i64 10, i1 false) + %8 = bitcast %struct.point324* %2 to i8* + %9 = bitcast %struct.point324* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 2 %8, i8* align 2 %9, i64 10, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point324* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 2 %11, i64 10, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo325([2 x i64] %0) #0 { + %2 = alloca %struct.point325, align 4 + %3 = alloca %struct.point325, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point325* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point325* %2 to i8* + %9 = bitcast %struct.point325* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point325* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo326([2 x i64] %0) #0 { + %2 = alloca %struct.point326, align 4 + %3 = alloca %struct.point326, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point326* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point326* %2 to i8* + %9 = bitcast %struct.point326* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point326* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo327([2 x i64] %0) #0 { + %2 = alloca %struct.point327, align 4 + %3 = alloca %struct.point327, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point327* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point327* %2 to i8* + %9 = bitcast %struct.point327* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point327* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo328([2 x i64] %0) #0 { + %2 = alloca %struct.point328, align 4 + %3 = alloca %struct.point328, align 4 + %4 = bitcast %struct.point328* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point328* %2 to i8* + %6 = bitcast %struct.point328* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point328* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo329([2 x i64] %0) #0 { + %2 = alloca %struct.point329, align 4 + %3 = alloca %struct.point329, align 4 + %4 = bitcast %struct.point329* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point329* %2 to i8* + %6 = bitcast %struct.point329* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point329* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo330([2 x i64] %0) #0 { + %2 = alloca %struct.point330, align 4 + %3 = alloca %struct.point330, align 4 + %4 = bitcast %struct.point330* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point330* %2 to i8* + %6 = bitcast %struct.point330* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point330* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo331([2 x i64] %0) #0 { + %2 = alloca %struct.point331, align 4 + %3 = alloca %struct.point331, align 4 + %4 = bitcast %struct.point331* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point331* %2 to i8* + %6 = bitcast %struct.point331* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point331* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo332([2 x i64] %0) #0 { + %2 = alloca %struct.point332, align 4 + %3 = alloca %struct.point332, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point332* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point332* %2 to i8* + %9 = bitcast %struct.point332* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point332* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo333([2 x i64] %0) #0 { + %2 = alloca %struct.point333, align 4 + %3 = alloca %struct.point333, align 4 + %4 = bitcast %struct.point333* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point333* %2 to i8* + %6 = bitcast %struct.point333* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point333* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo334([2 x i64] %0) #0 { + %2 = alloca %struct.point334, align 4 + %3 = alloca %struct.point334, align 4 + %4 = bitcast %struct.point334* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point334* %2 to i8* + %6 = bitcast %struct.point334* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point334* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo335([2 x i64] %0) #0 { + %2 = alloca %struct.point335, align 4 + %3 = alloca %struct.point335, align 4 + %4 = bitcast %struct.point335* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point335* %2 to i8* + %6 = bitcast %struct.point335* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point335* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo336([2 x i64] %0) #0 { + %2 = alloca %struct.point336, align 4 + %3 = alloca %struct.point336, align 4 + %4 = bitcast %struct.point336* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point336* %2 to i8* + %6 = bitcast %struct.point336* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point336* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo337(i64 %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + %4 = bitcast %struct.point337* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point337* %2 to i8* + %6 = bitcast %struct.point337* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point337* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo338([2 x i64] %0) #0 { + %2 = alloca %struct.point338, align 4 + %3 = alloca %struct.point338, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point338* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point338* %2 to i8* + %9 = bitcast %struct.point338* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point338* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo339([2 x i64] %0) #0 { + %2 = alloca %struct.point339, align 4 + %3 = alloca %struct.point339, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point339* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point339* %2 to i8* + %9 = bitcast %struct.point339* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point339* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo340([2 x i64] %0) #0 { + %2 = alloca %struct.point340, align 4 + %3 = alloca %struct.point340, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point340* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point340* %2 to i8* + %9 = bitcast %struct.point340* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point340* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo341([2 x i64] %0) #0 { + %2 = alloca %struct.point341, align 4 + %3 = alloca %struct.point341, align 4 + %4 = bitcast %struct.point341* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point341* %2 to i8* + %6 = bitcast %struct.point341* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point341* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo342([2 x i64] %0) #0 { + %2 = alloca %struct.point342, align 4 + %3 = alloca %struct.point342, align 4 + %4 = bitcast %struct.point342* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point342* %2 to i8* + %6 = bitcast %struct.point342* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point342* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo343([2 x i64] %0) #0 { + %2 = alloca %struct.point343, align 4 + %3 = alloca %struct.point343, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point343* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point343* %2 to i8* + %9 = bitcast %struct.point343* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point343* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo344([2 x i64] %0) #0 { + %2 = alloca %struct.point344, align 4 + %3 = alloca %struct.point344, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point344* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point344* %2 to i8* + %9 = bitcast %struct.point344* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point344* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo345([2 x i64] %0) #0 { + %2 = alloca %struct.point345, align 4 + %3 = alloca %struct.point345, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point345* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point345* %2 to i8* + %9 = bitcast %struct.point345* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point345* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo346([2 x i64] %0) #0 { + %2 = alloca %struct.point346, align 4 + %3 = alloca %struct.point346, align 4 + %4 = bitcast %struct.point346* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point346* %2 to i8* + %6 = bitcast %struct.point346* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point346* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo347([2 x i64] %0) #0 { + %2 = alloca %struct.point347, align 4 + %3 = alloca %struct.point347, align 4 + %4 = bitcast %struct.point347* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point347* %2 to i8* + %6 = bitcast %struct.point347* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point347* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo348([2 x i64] %0) #0 { + %2 = alloca %struct.point348, align 4 + %3 = alloca %struct.point348, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point348* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point348* %2 to i8* + %9 = bitcast %struct.point348* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point348* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo349([2 x i64] %0) #0 { + %2 = alloca %struct.point349, align 4 + %3 = alloca %struct.point349, align 4 + %4 = bitcast %struct.point349* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point349* %2 to i8* + %6 = bitcast %struct.point349* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point349* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo350([2 x i64] %0) #0 { + %2 = alloca %struct.point350, align 4 + %3 = alloca %struct.point350, align 4 + %4 = bitcast %struct.point350* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point350* %2 to i8* + %6 = bitcast %struct.point350* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point350* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo351([2 x i64] %0) #0 { + %2 = alloca %struct.point351, align 4 + %3 = alloca %struct.point351, align 4 + %4 = bitcast %struct.point351* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point351* %2 to i8* + %6 = bitcast %struct.point351* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point351* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo352([2 x i64] %0) #0 { + %2 = alloca %struct.point352, align 4 + %3 = alloca %struct.point352, align 4 + %4 = bitcast %struct.point352* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point352* %2 to i8* + %6 = bitcast %struct.point352* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point352* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo353([2 x i64] %0) #0 { + %2 = alloca %struct.point353, align 4 + %3 = alloca %struct.point353, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point353* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point353* %2 to i8* + %9 = bitcast %struct.point353* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point353* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo354([2 x i64] %0) #0 { + %2 = alloca %struct.point354, align 4 + %3 = alloca %struct.point354, align 4 + %4 = bitcast %struct.point354* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point354* %2 to i8* + %6 = bitcast %struct.point354* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point354* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo355([2 x i64] %0) #0 { + %2 = alloca %struct.point355, align 4 + %3 = alloca %struct.point355, align 4 + %4 = bitcast %struct.point355* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point355* %2 to i8* + %6 = bitcast %struct.point355* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point355* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo356([2 x i64] %0) #0 { + %2 = alloca %struct.point356, align 4 + %3 = alloca %struct.point356, align 4 + %4 = bitcast %struct.point356* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point356* %2 to i8* + %6 = bitcast %struct.point356* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point356* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo357([2 x i64] %0) #0 { + %2 = alloca %struct.point357, align 4 + %3 = alloca %struct.point357, align 4 + %4 = bitcast %struct.point357* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point357* %2 to i8* + %6 = bitcast %struct.point357* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point357* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo358(i64 %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + %4 = bitcast %struct.point358* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point358* %2 to i8* + %6 = bitcast %struct.point358* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point358* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo359([2 x i64] %0) #0 { + %2 = alloca %struct.point359, align 4 + %3 = alloca %struct.point359, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point359* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point359* %2 to i8* + %9 = bitcast %struct.point359* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point359* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo360([2 x i64] %0) #0 { + %2 = alloca %struct.point360, align 4 + %3 = alloca %struct.point360, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point360* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point360* %2 to i8* + %9 = bitcast %struct.point360* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point360* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo361([2 x i64] %0) #0 { + %2 = alloca %struct.point361, align 4 + %3 = alloca %struct.point361, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point361* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point361* %2 to i8* + %9 = bitcast %struct.point361* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point361* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo362([2 x i64] %0) #0 { + %2 = alloca %struct.point362, align 4 + %3 = alloca %struct.point362, align 4 + %4 = bitcast %struct.point362* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point362* %2 to i8* + %6 = bitcast %struct.point362* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point362* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo363([2 x i64] %0) #0 { + %2 = alloca %struct.point363, align 4 + %3 = alloca %struct.point363, align 4 + %4 = bitcast %struct.point363* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point363* %2 to i8* + %6 = bitcast %struct.point363* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point363* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo364([2 x i64] %0) #0 { + %2 = alloca %struct.point364, align 4 + %3 = alloca %struct.point364, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point364* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point364* %2 to i8* + %9 = bitcast %struct.point364* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point364* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo365([2 x i64] %0) #0 { + %2 = alloca %struct.point365, align 4 + %3 = alloca %struct.point365, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point365* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point365* %2 to i8* + %9 = bitcast %struct.point365* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point365* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo366([2 x i64] %0) #0 { + %2 = alloca %struct.point366, align 4 + %3 = alloca %struct.point366, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point366* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point366* %2 to i8* + %9 = bitcast %struct.point366* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point366* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo367([2 x i64] %0) #0 { + %2 = alloca %struct.point367, align 4 + %3 = alloca %struct.point367, align 4 + %4 = bitcast %struct.point367* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point367* %2 to i8* + %6 = bitcast %struct.point367* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point367* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo368([2 x i64] %0) #0 { + %2 = alloca %struct.point368, align 4 + %3 = alloca %struct.point368, align 4 + %4 = bitcast %struct.point368* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point368* %2 to i8* + %6 = bitcast %struct.point368* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point368* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo369([2 x i64] %0) #0 { + %2 = alloca %struct.point369, align 4 + %3 = alloca %struct.point369, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point369* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point369* %2 to i8* + %9 = bitcast %struct.point369* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point369* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo370([2 x i64] %0) #0 { + %2 = alloca %struct.point370, align 4 + %3 = alloca %struct.point370, align 4 + %4 = bitcast %struct.point370* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point370* %2 to i8* + %6 = bitcast %struct.point370* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point370* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo371([2 x i64] %0) #0 { + %2 = alloca %struct.point371, align 4 + %3 = alloca %struct.point371, align 4 + %4 = bitcast %struct.point371* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point371* %2 to i8* + %6 = bitcast %struct.point371* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point371* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo372([2 x i64] %0) #0 { + %2 = alloca %struct.point372, align 4 + %3 = alloca %struct.point372, align 4 + %4 = bitcast %struct.point372* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point372* %2 to i8* + %6 = bitcast %struct.point372* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point372* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo373([2 x i64] %0) #0 { + %2 = alloca %struct.point373, align 4 + %3 = alloca %struct.point373, align 4 + %4 = bitcast %struct.point373* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point373* %2 to i8* + %6 = bitcast %struct.point373* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point373* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo374([2 x i64] %0) #0 { + %2 = alloca %struct.point374, align 4 + %3 = alloca %struct.point374, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point374* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point374* %2 to i8* + %9 = bitcast %struct.point374* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point374* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo375([2 x i64] %0) #0 { + %2 = alloca %struct.point375, align 4 + %3 = alloca %struct.point375, align 4 + %4 = bitcast %struct.point375* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point375* %2 to i8* + %6 = bitcast %struct.point375* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point375* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo376([2 x i64] %0) #0 { + %2 = alloca %struct.point376, align 4 + %3 = alloca %struct.point376, align 4 + %4 = bitcast %struct.point376* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point376* %2 to i8* + %6 = bitcast %struct.point376* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point376* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo377([2 x i64] %0) #0 { + %2 = alloca %struct.point377, align 4 + %3 = alloca %struct.point377, align 4 + %4 = bitcast %struct.point377* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point377* %2 to i8* + %6 = bitcast %struct.point377* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point377* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo378([2 x i64] %0) #0 { + %2 = alloca %struct.point378, align 4 + %3 = alloca %struct.point378, align 4 + %4 = bitcast %struct.point378* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point378* %2 to i8* + %6 = bitcast %struct.point378* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point378* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo379([2 x i64] %0) #0 { + %2 = alloca %struct.point379, align 4 + %3 = alloca %struct.point379, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point379* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point379* %2 to i8* + %9 = bitcast %struct.point379* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point379* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo380([2 x i64] %0) #0 { + %2 = alloca %struct.point380, align 4 + %3 = alloca %struct.point380, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point380* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point380* %2 to i8* + %9 = bitcast %struct.point380* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point380* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo381([2 x i64] %0) #0 { + %2 = alloca %struct.point381, align 4 + %3 = alloca %struct.point381, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point381* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point381* %2 to i8* + %9 = bitcast %struct.point381* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point381* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo382([2 x i64] %0) #0 { + %2 = alloca %struct.point382, align 4 + %3 = alloca %struct.point382, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point382* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point382* %2 to i8* + %9 = bitcast %struct.point382* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point382* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo383([2 x i64] %0) #0 { + %2 = alloca %struct.point383, align 4 + %3 = alloca %struct.point383, align 4 + %4 = bitcast %struct.point383* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point383* %2 to i8* + %6 = bitcast %struct.point383* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point383* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo384([2 x i64] %0) #0 { + %2 = alloca %struct.point384, align 4 + %3 = alloca %struct.point384, align 4 + %4 = bitcast %struct.point384* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point384* %2 to i8* + %6 = bitcast %struct.point384* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point384* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo385([2 x i64] %0) #0 { + %2 = alloca %struct.point385, align 4 + %3 = alloca %struct.point385, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point385* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point385* %2 to i8* + %9 = bitcast %struct.point385* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point385* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo386([2 x i64] %0) #0 { + %2 = alloca %struct.point386, align 4 + %3 = alloca %struct.point386, align 4 + %4 = bitcast %struct.point386* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point386* %2 to i8* + %6 = bitcast %struct.point386* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point386* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo387([2 x i64] %0) #0 { + %2 = alloca %struct.point387, align 4 + %3 = alloca %struct.point387, align 4 + %4 = bitcast %struct.point387* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point387* %2 to i8* + %6 = bitcast %struct.point387* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point387* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo388([2 x i64] %0) #0 { + %2 = alloca %struct.point388, align 4 + %3 = alloca %struct.point388, align 4 + %4 = bitcast %struct.point388* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point388* %2 to i8* + %6 = bitcast %struct.point388* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point388* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo389([2 x i64] %0) #0 { + %2 = alloca %struct.point389, align 4 + %3 = alloca %struct.point389, align 4 + %4 = bitcast %struct.point389* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point389* %2 to i8* + %6 = bitcast %struct.point389* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point389* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo390([2 x i64] %0) #0 { + %2 = alloca %struct.point390, align 4 + %3 = alloca %struct.point390, align 4 + %4 = bitcast %struct.point390* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point390* %2 to i8* + %6 = bitcast %struct.point390* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point390* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point391* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point391* %0 to i8* + %6 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point392* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point392* %0 to i8* + %6 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point393* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point393* %0 to i8* + %6 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point394* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point394* %0 to i8* + %6 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo395([2 x i64] %0) #0 { + %2 = alloca %struct.point395, align 4 + %3 = alloca %struct.point395, align 4 + %4 = bitcast %struct.point395* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point395* %2 to i8* + %6 = bitcast %struct.point395* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point395* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point396* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point396* %0 to i8* + %6 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point397* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point397* %0 to i8* + %6 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point398* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point398* %0 to i8* + %6 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point399* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point399* %0 to i8* + %6 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo400([2 x i64] %0) #0 { + %2 = alloca %struct.point400, align 4 + %3 = alloca %struct.point400, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point400* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point400* %2 to i8* + %9 = bitcast %struct.point400* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point400* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo401([2 x i64] %0) #0 { + %2 = alloca %struct.point401, align 4 + %3 = alloca %struct.point401, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point401* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point401* %2 to i8* + %9 = bitcast %struct.point401* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point401* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo402([2 x i64] %0) #0 { + %2 = alloca %struct.point402, align 4 + %3 = alloca %struct.point402, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point402* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point402* %2 to i8* + %9 = bitcast %struct.point402* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point402* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo403([2 x i64] %0) #0 { + %2 = alloca %struct.point403, align 4 + %3 = alloca %struct.point403, align 4 + %4 = bitcast %struct.point403* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point403* %2 to i8* + %6 = bitcast %struct.point403* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point403* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo404([2 x i64] %0) #0 { + %2 = alloca %struct.point404, align 4 + %3 = alloca %struct.point404, align 4 + %4 = bitcast %struct.point404* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point404* %2 to i8* + %6 = bitcast %struct.point404* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point404* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo405([2 x i64] %0) #0 { + %2 = alloca %struct.point405, align 4 + %3 = alloca %struct.point405, align 4 + %4 = bitcast %struct.point405* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point405* %2 to i8* + %6 = bitcast %struct.point405* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point405* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo406([2 x i64] %0) #0 { + %2 = alloca %struct.point406, align 4 + %3 = alloca %struct.point406, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point406* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point406* %2 to i8* + %9 = bitcast %struct.point406* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point406* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo407([2 x i64] %0) #0 { + %2 = alloca %struct.point407, align 4 + %3 = alloca %struct.point407, align 4 + %4 = bitcast %struct.point407* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point407* %2 to i8* + %6 = bitcast %struct.point407* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point407* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo408([2 x i64] %0) #0 { + %2 = alloca %struct.point408, align 4 + %3 = alloca %struct.point408, align 4 + %4 = bitcast %struct.point408* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point408* %2 to i8* + %6 = bitcast %struct.point408* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point408* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo409([2 x i64] %0) #0 { + %2 = alloca %struct.point409, align 4 + %3 = alloca %struct.point409, align 4 + %4 = bitcast %struct.point409* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point409* %2 to i8* + %6 = bitcast %struct.point409* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point409* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo410([2 x i64] %0) #0 { + %2 = alloca %struct.point410, align 4 + %3 = alloca %struct.point410, align 4 + %4 = bitcast %struct.point410* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point410* %2 to i8* + %6 = bitcast %struct.point410* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point410* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo411([2 x i64] %0) #0 { + %2 = alloca %struct.point411, align 4 + %3 = alloca %struct.point411, align 4 + %4 = bitcast %struct.point411* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point411* %2 to i8* + %6 = bitcast %struct.point411* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point411* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point412* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point412* %0 to i8* + %6 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point413* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point413* %0 to i8* + %6 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point414* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point414* %0 to i8* + %6 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point415* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point415* %0 to i8* + %6 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo416([2 x i64] %0) #0 { + %2 = alloca %struct.point416, align 4 + %3 = alloca %struct.point416, align 4 + %4 = bitcast %struct.point416* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point416* %2 to i8* + %6 = bitcast %struct.point416* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point416* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point417* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point417* %0 to i8* + %6 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point418* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point418* %0 to i8* + %6 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point419* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point419* %0 to i8* + %6 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point420* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point420* %0 to i8* + %6 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo421([2 x i64] %0) #0 { + %2 = alloca %struct.point421, align 4 + %3 = alloca %struct.point421, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point421* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point421* %2 to i8* + %9 = bitcast %struct.point421* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point421* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo422([2 x i64] %0) #0 { + %2 = alloca %struct.point422, align 4 + %3 = alloca %struct.point422, align 4 + %4 = bitcast %struct.point422* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point422* %2 to i8* + %6 = bitcast %struct.point422* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point422* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo423([2 x i64] %0) #0 { + %2 = alloca %struct.point423, align 4 + %3 = alloca %struct.point423, align 4 + %4 = bitcast %struct.point423* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point423* %2 to i8* + %6 = bitcast %struct.point423* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point423* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo424([2 x i64] %0) #0 { + %2 = alloca %struct.point424, align 4 + %3 = alloca %struct.point424, align 4 + %4 = bitcast %struct.point424* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point424* %2 to i8* + %6 = bitcast %struct.point424* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point424* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point425* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point425* %0 to i8* + %6 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point426* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point426* %0 to i8* + %6 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo427([2 x i64] %0) #0 { + %2 = alloca %struct.point427, align 4 + %3 = alloca %struct.point427, align 4 + %4 = bitcast %struct.point427* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point427* %2 to i8* + %6 = bitcast %struct.point427* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point427* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo428([2 x i64] %0) #0 { + %2 = alloca %struct.point428, align 4 + %3 = alloca %struct.point428, align 4 + %4 = bitcast %struct.point428* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point428* %2 to i8* + %6 = bitcast %struct.point428* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point428* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo429([2 x i64] %0) #0 { + %2 = alloca %struct.point429, align 4 + %3 = alloca %struct.point429, align 4 + %4 = bitcast %struct.point429* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point429* %2 to i8* + %6 = bitcast %struct.point429* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point429* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point430* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point430* %0 to i8* + %6 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point431* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point431* %0 to i8* + %6 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo432([2 x i64] %0) #0 { + %2 = alloca %struct.point432, align 4 + %3 = alloca %struct.point432, align 4 + %4 = bitcast %struct.point432* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point432* %2 to i8* + %6 = bitcast %struct.point432* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point432* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point433* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point433* %0 to i8* + %6 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point434* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point434* %0 to i8* + %6 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point435* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point435* %0 to i8* + %6 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point436* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point436* %0 to i8* + %6 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo437([2 x i64] %0) #0 { + %2 = alloca %struct.point437, align 4 + %3 = alloca %struct.point437, align 4 + %4 = bitcast %struct.point437* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point437* %2 to i8* + %6 = bitcast %struct.point437* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point437* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point438* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point438* %0 to i8* + %6 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point439* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point439* %0 to i8* + %6 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point440* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point440* %0 to i8* + %6 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point441* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point441* %0 to i8* + %6 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo442([2 x i64] %0) #0 { + %2 = alloca %struct.point442, align 4 + %3 = alloca %struct.point442, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point442* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point442* %2 to i8* + %9 = bitcast %struct.point442* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point442* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo443([2 x i64] %0) #0 { + %2 = alloca %struct.point443, align 4 + %3 = alloca %struct.point443, align 4 + %4 = bitcast %struct.point443* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point443* %2 to i8* + %6 = bitcast %struct.point443* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point443* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo444([2 x i64] %0) #0 { + %2 = alloca %struct.point444, align 4 + %3 = alloca %struct.point444, align 4 + %4 = bitcast %struct.point444* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point444* %2 to i8* + %6 = bitcast %struct.point444* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point444* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo445([2 x i64] %0) #0 { + %2 = alloca %struct.point445, align 4 + %3 = alloca %struct.point445, align 4 + %4 = bitcast %struct.point445* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point445* %2 to i8* + %6 = bitcast %struct.point445* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point445* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point446* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point446* %0 to i8* + %6 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point447* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point447* %0 to i8* + %6 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo448([2 x i64] %0) #0 { + %2 = alloca %struct.point448, align 4 + %3 = alloca %struct.point448, align 4 + %4 = bitcast %struct.point448* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point448* %2 to i8* + %6 = bitcast %struct.point448* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point448* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo449([2 x i64] %0) #0 { + %2 = alloca %struct.point449, align 4 + %3 = alloca %struct.point449, align 4 + %4 = bitcast %struct.point449* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point449* %2 to i8* + %6 = bitcast %struct.point449* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point449* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo450([2 x i64] %0) #0 { + %2 = alloca %struct.point450, align 4 + %3 = alloca %struct.point450, align 4 + %4 = bitcast %struct.point450* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point450* %2 to i8* + %6 = bitcast %struct.point450* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point450* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point451* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point451* %0 to i8* + %6 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point452* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point452* %0 to i8* + %6 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo453([2 x i64] %0) #0 { + %2 = alloca %struct.point453, align 4 + %3 = alloca %struct.point453, align 4 + %4 = bitcast %struct.point453* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point453* %2 to i8* + %6 = bitcast %struct.point453* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point453* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point454* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point454* %0 to i8* + %6 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point455* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point455* %0 to i8* + %6 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point456* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point456* %0 to i8* + %6 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point457* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point457* %0 to i8* + %6 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo458([2 x i64] %0) #0 { + %2 = alloca %struct.point458, align 4 + %3 = alloca %struct.point458, align 4 + %4 = bitcast %struct.point458* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point458* %2 to i8* + %6 = bitcast %struct.point458* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point458* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point459* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point459* %0 to i8* + %6 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point460* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point460* %0 to i8* + %6 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point461* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point461* %0 to i8* + %6 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point462* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point462* %0 to i8* + %6 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo463([2 x i64] %0) #0 { + %2 = alloca %struct.point463, align 4 + %3 = alloca %struct.point463, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point463* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point463* %2 to i8* + %9 = bitcast %struct.point463* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point463* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo464([2 x i64] %0) #0 { + %2 = alloca %struct.point464, align 4 + %3 = alloca %struct.point464, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point464* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point464* %2 to i8* + %9 = bitcast %struct.point464* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point464* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo465([2 x i64] %0) #0 { + %2 = alloca %struct.point465, align 4 + %3 = alloca %struct.point465, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point465* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point465* %2 to i8* + %9 = bitcast %struct.point465* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point465* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo466([2 x i64] %0) #0 { + %2 = alloca %struct.point466, align 4 + %3 = alloca %struct.point466, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point466* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point466* %2 to i8* + %9 = bitcast %struct.point466* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point466* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo467([2 x i64] %0) #0 { + %2 = alloca %struct.point467, align 4 + %3 = alloca %struct.point467, align 4 + %4 = bitcast %struct.point467* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point467* %2 to i8* + %6 = bitcast %struct.point467* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point467* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo468([2 x i64] %0) #0 { + %2 = alloca %struct.point468, align 4 + %3 = alloca %struct.point468, align 4 + %4 = bitcast %struct.point468* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point468* %2 to i8* + %6 = bitcast %struct.point468* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point468* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo469([2 x i64] %0) #0 { + %2 = alloca %struct.point469, align 4 + %3 = alloca %struct.point469, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point469* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point469* %2 to i8* + %9 = bitcast %struct.point469* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point469* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo470([2 x i64] %0) #0 { + %2 = alloca %struct.point470, align 4 + %3 = alloca %struct.point470, align 4 + %4 = bitcast %struct.point470* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point470* %2 to i8* + %6 = bitcast %struct.point470* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point470* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo471([2 x i64] %0) #0 { + %2 = alloca %struct.point471, align 4 + %3 = alloca %struct.point471, align 4 + %4 = bitcast %struct.point471* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point471* %2 to i8* + %6 = bitcast %struct.point471* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point471* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo472([2 x i64] %0) #0 { + %2 = alloca %struct.point472, align 4 + %3 = alloca %struct.point472, align 4 + %4 = bitcast %struct.point472* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point472* %2 to i8* + %6 = bitcast %struct.point472* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point472* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo473([2 x i64] %0) #0 { + %2 = alloca %struct.point473, align 4 + %3 = alloca %struct.point473, align 4 + %4 = bitcast %struct.point473* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point473* %2 to i8* + %6 = bitcast %struct.point473* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point473* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo474([2 x i64] %0) #0 { + %2 = alloca %struct.point474, align 4 + %3 = alloca %struct.point474, align 4 + %4 = bitcast %struct.point474* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point474* %2 to i8* + %6 = bitcast %struct.point474* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point474* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point475* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point475* %0 to i8* + %6 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point476* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point476* %0 to i8* + %6 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point477* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point477* %0 to i8* + %6 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point478* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point478* %0 to i8* + %6 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo479([2 x i64] %0) #0 { + %2 = alloca %struct.point479, align 4 + %3 = alloca %struct.point479, align 4 + %4 = bitcast %struct.point479* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point479* %2 to i8* + %6 = bitcast %struct.point479* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point479* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point480* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point480* %0 to i8* + %6 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point481* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point481* %0 to i8* + %6 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point482* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point482* %0 to i8* + %6 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point483* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point483* %0 to i8* + %6 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo484([2 x i64] %0) #0 { + %2 = alloca %struct.point484, align 4 + %3 = alloca %struct.point484, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point484* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point484* %2 to i8* + %9 = bitcast %struct.point484* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point484* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo485([2 x i64] %0) #0 { + %2 = alloca %struct.point485, align 4 + %3 = alloca %struct.point485, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point485* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point485* %2 to i8* + %9 = bitcast %struct.point485* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point485* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo486([2 x i64] %0) #0 { + %2 = alloca %struct.point486, align 4 + %3 = alloca %struct.point486, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point486* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point486* %2 to i8* + %9 = bitcast %struct.point486* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point486* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo487([2 x i64] %0) #0 { + %2 = alloca %struct.point487, align 4 + %3 = alloca %struct.point487, align 4 + %4 = bitcast %struct.point487* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point487* %2 to i8* + %6 = bitcast %struct.point487* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point487* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo488([2 x i64] %0) #0 { + %2 = alloca %struct.point488, align 4 + %3 = alloca %struct.point488, align 4 + %4 = bitcast %struct.point488* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point488* %2 to i8* + %6 = bitcast %struct.point488* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point488* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo489([2 x i64] %0) #0 { + %2 = alloca %struct.point489, align 4 + %3 = alloca %struct.point489, align 4 + %4 = bitcast %struct.point489* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point489* %2 to i8* + %6 = bitcast %struct.point489* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point489* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo490([2 x i64] %0) #0 { + %2 = alloca %struct.point490, align 4 + %3 = alloca %struct.point490, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point490* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point490* %2 to i8* + %9 = bitcast %struct.point490* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point490* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo491([2 x i64] %0) #0 { + %2 = alloca %struct.point491, align 4 + %3 = alloca %struct.point491, align 4 + %4 = bitcast %struct.point491* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point491* %2 to i8* + %6 = bitcast %struct.point491* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point491* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo492([2 x i64] %0) #0 { + %2 = alloca %struct.point492, align 4 + %3 = alloca %struct.point492, align 4 + %4 = bitcast %struct.point492* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point492* %2 to i8* + %6 = bitcast %struct.point492* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point492* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo493([2 x i64] %0) #0 { + %2 = alloca %struct.point493, align 4 + %3 = alloca %struct.point493, align 4 + %4 = bitcast %struct.point493* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point493* %2 to i8* + %6 = bitcast %struct.point493* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point493* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo494([2 x i64] %0) #0 { + %2 = alloca %struct.point494, align 4 + %3 = alloca %struct.point494, align 4 + %4 = bitcast %struct.point494* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point494* %2 to i8* + %6 = bitcast %struct.point494* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point494* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo495([2 x i64] %0) #0 { + %2 = alloca %struct.point495, align 4 + %3 = alloca %struct.point495, align 4 + %4 = bitcast %struct.point495* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point495* %2 to i8* + %6 = bitcast %struct.point495* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point495* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point496* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point496* %0 to i8* + %6 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point497* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point497* %0 to i8* + %6 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point498* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point498* %0 to i8* + %6 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point499* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point499* %0 to i8* + %6 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo500([2 x i64] %0) #0 { + %2 = alloca %struct.point500, align 4 + %3 = alloca %struct.point500, align 4 + %4 = bitcast %struct.point500* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point500* %2 to i8* + %6 = bitcast %struct.point500* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point500* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point501* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point501* %0 to i8* + %6 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point502* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point502* %0 to i8* + %6 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point503* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point503* %0 to i8* + %6 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point504* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point504* %0 to i8* + %6 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo505([2 x i64] %0) #0 { + %2 = alloca %struct.point505, align 4 + %3 = alloca %struct.point505, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point505* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point505* %2 to i8* + %9 = bitcast %struct.point505* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point505* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo506([2 x i64] %0) #0 { + %2 = alloca %struct.point506, align 4 + %3 = alloca %struct.point506, align 4 + %4 = bitcast %struct.point506* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point506* %2 to i8* + %6 = bitcast %struct.point506* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point506* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo507([2 x i64] %0) #0 { + %2 = alloca %struct.point507, align 4 + %3 = alloca %struct.point507, align 4 + %4 = bitcast %struct.point507* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point507* %2 to i8* + %6 = bitcast %struct.point507* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point507* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo508([2 x i64] %0) #0 { + %2 = alloca %struct.point508, align 4 + %3 = alloca %struct.point508, align 4 + %4 = bitcast %struct.point508* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point508* %2 to i8* + %6 = bitcast %struct.point508* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point508* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point509* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point509* %0 to i8* + %6 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point510* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point510* %0 to i8* + %6 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo511([2 x i64] %0) #0 { + %2 = alloca %struct.point511, align 4 + %3 = alloca %struct.point511, align 4 + %4 = bitcast %struct.point511* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point511* %2 to i8* + %6 = bitcast %struct.point511* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point511* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo512([2 x i64] %0) #0 { + %2 = alloca %struct.point512, align 4 + %3 = alloca %struct.point512, align 4 + %4 = bitcast %struct.point512* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point512* %2 to i8* + %6 = bitcast %struct.point512* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point512* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo513([2 x i64] %0) #0 { + %2 = alloca %struct.point513, align 4 + %3 = alloca %struct.point513, align 4 + %4 = bitcast %struct.point513* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point513* %2 to i8* + %6 = bitcast %struct.point513* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point513* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point514* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point514* %0 to i8* + %6 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point515* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point515* %0 to i8* + %6 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo516([2 x i64] %0) #0 { + %2 = alloca %struct.point516, align 4 + %3 = alloca %struct.point516, align 4 + %4 = bitcast %struct.point516* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point516* %2 to i8* + %6 = bitcast %struct.point516* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point516* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point517* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point517* %0 to i8* + %6 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point518* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point518* %0 to i8* + %6 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point519* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point519* %0 to i8* + %6 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point520* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point520* %0 to i8* + %6 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo521([2 x i64] %0) #0 { + %2 = alloca %struct.point521, align 4 + %3 = alloca %struct.point521, align 4 + %4 = bitcast %struct.point521* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point521* %2 to i8* + %6 = bitcast %struct.point521* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point521* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point522* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point522* %0 to i8* + %6 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point523* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point523* %0 to i8* + %6 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point524* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point524* %0 to i8* + %6 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point525* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point525* %0 to i8* + %6 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo526([2 x i64] %0) #0 { + %2 = alloca %struct.point526, align 4 + %3 = alloca %struct.point526, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point526* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point526* %2 to i8* + %9 = bitcast %struct.point526* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point526* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo527([2 x i64] %0) #0 { + %2 = alloca %struct.point527, align 4 + %3 = alloca %struct.point527, align 4 + %4 = bitcast %struct.point527* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point527* %2 to i8* + %6 = bitcast %struct.point527* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point527* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo528([2 x i64] %0) #0 { + %2 = alloca %struct.point528, align 4 + %3 = alloca %struct.point528, align 4 + %4 = bitcast %struct.point528* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point528* %2 to i8* + %6 = bitcast %struct.point528* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point528* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo529([2 x i64] %0) #0 { + %2 = alloca %struct.point529, align 4 + %3 = alloca %struct.point529, align 4 + %4 = bitcast %struct.point529* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point529* %2 to i8* + %6 = bitcast %struct.point529* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point529* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point530* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point530* %0 to i8* + %6 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point531* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point531* %0 to i8* + %6 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo532([2 x i64] %0) #0 { + %2 = alloca %struct.point532, align 4 + %3 = alloca %struct.point532, align 4 + %4 = bitcast %struct.point532* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point532* %2 to i8* + %6 = bitcast %struct.point532* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point532* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo533([2 x i64] %0) #0 { + %2 = alloca %struct.point533, align 4 + %3 = alloca %struct.point533, align 4 + %4 = bitcast %struct.point533* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point533* %2 to i8* + %6 = bitcast %struct.point533* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point533* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo534([2 x i64] %0) #0 { + %2 = alloca %struct.point534, align 4 + %3 = alloca %struct.point534, align 4 + %4 = bitcast %struct.point534* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point534* %2 to i8* + %6 = bitcast %struct.point534* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point534* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point535* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point535* %0 to i8* + %6 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point536* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point536* %0 to i8* + %6 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo537([2 x i64] %0) #0 { + %2 = alloca %struct.point537, align 4 + %3 = alloca %struct.point537, align 4 + %4 = bitcast %struct.point537* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point537* %2 to i8* + %6 = bitcast %struct.point537* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point537* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point538* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point538* %0 to i8* + %6 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point539* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point539* %0 to i8* + %6 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point540* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point540* %0 to i8* + %6 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point541* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point541* %0 to i8* + %6 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo542([2 x i64] %0) #0 { + %2 = alloca %struct.point542, align 4 + %3 = alloca %struct.point542, align 4 + %4 = bitcast %struct.point542* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point542* %2 to i8* + %6 = bitcast %struct.point542* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point542* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point543* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point543* %0 to i8* + %6 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point544* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point544* %0 to i8* + %6 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point545* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point545* %0 to i8* + %6 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point546* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point546* %0 to i8* + %6 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo547(i64 %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + %4 = bitcast %struct.point547* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point547* %2 to i8* + %6 = bitcast %struct.point547* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point547* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo548(i64 %0) #0 { + %2 = alloca %struct.point548, align 4 + %3 = alloca %struct.point548, align 4 + %4 = bitcast %struct.point548* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point548* %2 to i8* + %6 = bitcast %struct.point548* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point548* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo549(i64 %0) #0 { + %2 = alloca %struct.point549, align 4 + %3 = alloca %struct.point549, align 4 + %4 = bitcast %struct.point549* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point549* %2 to i8* + %6 = bitcast %struct.point549* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point549* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo550([2 x i64] %0) #0 { + %2 = alloca %struct.point550, align 4 + %3 = alloca %struct.point550, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point550* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point550* %2 to i8* + %9 = bitcast %struct.point550* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point550* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo551([2 x i64] %0) #0 { + %2 = alloca %struct.point551, align 4 + %3 = alloca %struct.point551, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point551* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point551* %2 to i8* + %9 = bitcast %struct.point551* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point551* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo552([2 x i64] %0) #0 { + %2 = alloca %struct.point552, align 4 + %3 = alloca %struct.point552, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point552* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point552* %2 to i8* + %9 = bitcast %struct.point552* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point552* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo553(i64 %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + %4 = bitcast %struct.point553* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point553* %2 to i8* + %6 = bitcast %struct.point553* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point553* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo554([2 x i64] %0) #0 { + %2 = alloca %struct.point554, align 4 + %3 = alloca %struct.point554, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point554* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point554* %2 to i8* + %9 = bitcast %struct.point554* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point554* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo555([2 x i64] %0) #0 { + %2 = alloca %struct.point555, align 4 + %3 = alloca %struct.point555, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point555* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point555* %2 to i8* + %9 = bitcast %struct.point555* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point555* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo556([2 x i64] %0) #0 { + %2 = alloca %struct.point556, align 4 + %3 = alloca %struct.point556, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point556* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point556* %2 to i8* + %9 = bitcast %struct.point556* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point556* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo557([2 x i64] %0) #0 { + %2 = alloca %struct.point557, align 4 + %3 = alloca %struct.point557, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point557* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point557* %2 to i8* + %9 = bitcast %struct.point557* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point557* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo558([2 x i64] %0) #0 { + %2 = alloca %struct.point558, align 4 + %3 = alloca %struct.point558, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point558* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point558* %2 to i8* + %9 = bitcast %struct.point558* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point558* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo559([2 x i64] %0) #0 { + %2 = alloca %struct.point559, align 4 + %3 = alloca %struct.point559, align 4 + %4 = bitcast %struct.point559* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point559* %2 to i8* + %6 = bitcast %struct.point559* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point559* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo560([2 x i64] %0) #0 { + %2 = alloca %struct.point560, align 4 + %3 = alloca %struct.point560, align 4 + %4 = bitcast %struct.point560* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point560* %2 to i8* + %6 = bitcast %struct.point560* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point560* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo561([2 x i64] %0) #0 { + %2 = alloca %struct.point561, align 4 + %3 = alloca %struct.point561, align 4 + %4 = bitcast %struct.point561* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point561* %2 to i8* + %6 = bitcast %struct.point561* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point561* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo562([2 x i64] %0) #0 { + %2 = alloca %struct.point562, align 4 + %3 = alloca %struct.point562, align 4 + %4 = bitcast %struct.point562* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point562* %2 to i8* + %6 = bitcast %struct.point562* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point562* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo563([2 x i64] %0) #0 { + %2 = alloca %struct.point563, align 4 + %3 = alloca %struct.point563, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point563* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point563* %2 to i8* + %9 = bitcast %struct.point563* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point563* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo564([2 x i64] %0) #0 { + %2 = alloca %struct.point564, align 4 + %3 = alloca %struct.point564, align 4 + %4 = bitcast %struct.point564* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point564* %2 to i8* + %6 = bitcast %struct.point564* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point564* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo565([2 x i64] %0) #0 { + %2 = alloca %struct.point565, align 4 + %3 = alloca %struct.point565, align 4 + %4 = bitcast %struct.point565* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point565* %2 to i8* + %6 = bitcast %struct.point565* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point565* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo566([2 x i64] %0) #0 { + %2 = alloca %struct.point566, align 4 + %3 = alloca %struct.point566, align 4 + %4 = bitcast %struct.point566* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point566* %2 to i8* + %6 = bitcast %struct.point566* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point566* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo567([2 x i64] %0) #0 { + %2 = alloca %struct.point567, align 4 + %3 = alloca %struct.point567, align 4 + %4 = bitcast %struct.point567* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point567* %2 to i8* + %6 = bitcast %struct.point567* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point567* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo568(i64 %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + %4 = bitcast %struct.point568* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point568* %2 to i8* + %6 = bitcast %struct.point568* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point568* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo569([2 x i64] %0) #0 { + %2 = alloca %struct.point569, align 4 + %3 = alloca %struct.point569, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point569* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point569* %2 to i8* + %9 = bitcast %struct.point569* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point569* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo570([2 x i64] %0) #0 { + %2 = alloca %struct.point570, align 4 + %3 = alloca %struct.point570, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point570* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point570* %2 to i8* + %9 = bitcast %struct.point570* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point570* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo571([2 x i64] %0) #0 { + %2 = alloca %struct.point571, align 4 + %3 = alloca %struct.point571, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point571* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point571* %2 to i8* + %9 = bitcast %struct.point571* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point571* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo572([2 x i64] %0) #0 { + %2 = alloca %struct.point572, align 4 + %3 = alloca %struct.point572, align 4 + %4 = bitcast %struct.point572* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point572* %2 to i8* + %6 = bitcast %struct.point572* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point572* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo573([2 x i64] %0) #0 { + %2 = alloca %struct.point573, align 4 + %3 = alloca %struct.point573, align 4 + %4 = bitcast %struct.point573* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point573* %2 to i8* + %6 = bitcast %struct.point573* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point573* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo574([2 x i64] %0) #0 { + %2 = alloca %struct.point574, align 4 + %3 = alloca %struct.point574, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point574* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point574* %2 to i8* + %9 = bitcast %struct.point574* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point574* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo575([2 x i64] %0) #0 { + %2 = alloca %struct.point575, align 4 + %3 = alloca %struct.point575, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point575* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point575* %2 to i8* + %9 = bitcast %struct.point575* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point575* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo576([2 x i64] %0) #0 { + %2 = alloca %struct.point576, align 4 + %3 = alloca %struct.point576, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point576* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point576* %2 to i8* + %9 = bitcast %struct.point576* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point576* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo577([2 x i64] %0) #0 { + %2 = alloca %struct.point577, align 4 + %3 = alloca %struct.point577, align 4 + %4 = bitcast %struct.point577* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point577* %2 to i8* + %6 = bitcast %struct.point577* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point577* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo578([2 x i64] %0) #0 { + %2 = alloca %struct.point578, align 4 + %3 = alloca %struct.point578, align 4 + %4 = bitcast %struct.point578* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point578* %2 to i8* + %6 = bitcast %struct.point578* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point578* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo579([2 x i64] %0) #0 { + %2 = alloca %struct.point579, align 4 + %3 = alloca %struct.point579, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point579* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point579* %2 to i8* + %9 = bitcast %struct.point579* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point579* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo580([2 x i64] %0) #0 { + %2 = alloca %struct.point580, align 4 + %3 = alloca %struct.point580, align 4 + %4 = bitcast %struct.point580* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point580* %2 to i8* + %6 = bitcast %struct.point580* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point580* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo581([2 x i64] %0) #0 { + %2 = alloca %struct.point581, align 4 + %3 = alloca %struct.point581, align 4 + %4 = bitcast %struct.point581* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point581* %2 to i8* + %6 = bitcast %struct.point581* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point581* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo582([2 x i64] %0) #0 { + %2 = alloca %struct.point582, align 4 + %3 = alloca %struct.point582, align 4 + %4 = bitcast %struct.point582* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point582* %2 to i8* + %6 = bitcast %struct.point582* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point582* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo583([2 x i64] %0) #0 { + %2 = alloca %struct.point583, align 4 + %3 = alloca %struct.point583, align 4 + %4 = bitcast %struct.point583* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point583* %2 to i8* + %6 = bitcast %struct.point583* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point583* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo584([2 x i64] %0) #0 { + %2 = alloca %struct.point584, align 4 + %3 = alloca %struct.point584, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point584* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point584* %2 to i8* + %9 = bitcast %struct.point584* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point584* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo585([2 x i64] %0) #0 { + %2 = alloca %struct.point585, align 4 + %3 = alloca %struct.point585, align 4 + %4 = bitcast %struct.point585* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point585* %2 to i8* + %6 = bitcast %struct.point585* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point585* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo586([2 x i64] %0) #0 { + %2 = alloca %struct.point586, align 4 + %3 = alloca %struct.point586, align 4 + %4 = bitcast %struct.point586* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point586* %2 to i8* + %6 = bitcast %struct.point586* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point586* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo587([2 x i64] %0) #0 { + %2 = alloca %struct.point587, align 4 + %3 = alloca %struct.point587, align 4 + %4 = bitcast %struct.point587* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point587* %2 to i8* + %6 = bitcast %struct.point587* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point587* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo588([2 x i64] %0) #0 { + %2 = alloca %struct.point588, align 4 + %3 = alloca %struct.point588, align 4 + %4 = bitcast %struct.point588* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point588* %2 to i8* + %6 = bitcast %struct.point588* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point588* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo589([2 x i64] %0) #0 { + %2 = alloca %struct.point589, align 4 + %3 = alloca %struct.point589, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point589* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point589* %2 to i8* + %9 = bitcast %struct.point589* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point589* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo590([2 x i64] %0) #0 { + %2 = alloca %struct.point590, align 4 + %3 = alloca %struct.point590, align 4 + %4 = bitcast %struct.point590* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point590* %2 to i8* + %6 = bitcast %struct.point590* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point590* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo591([2 x i64] %0) #0 { + %2 = alloca %struct.point591, align 4 + %3 = alloca %struct.point591, align 4 + %4 = bitcast %struct.point591* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point591* %2 to i8* + %6 = bitcast %struct.point591* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point591* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo592([2 x i64] %0) #0 { + %2 = alloca %struct.point592, align 4 + %3 = alloca %struct.point592, align 4 + %4 = bitcast %struct.point592* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point592* %2 to i8* + %6 = bitcast %struct.point592* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point592* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point593* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point593* %0 to i8* + %6 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point594* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point594* %0 to i8* + %6 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo595([2 x i64] %0) #0 { + %2 = alloca %struct.point595, align 4 + %3 = alloca %struct.point595, align 4 + %4 = bitcast %struct.point595* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point595* %2 to i8* + %6 = bitcast %struct.point595* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point595* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo596([2 x i64] %0) #0 { + %2 = alloca %struct.point596, align 4 + %3 = alloca %struct.point596, align 4 + %4 = bitcast %struct.point596* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point596* %2 to i8* + %6 = bitcast %struct.point596* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point596* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo597([2 x i64] %0) #0 { + %2 = alloca %struct.point597, align 4 + %3 = alloca %struct.point597, align 4 + %4 = bitcast %struct.point597* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point597* %2 to i8* + %6 = bitcast %struct.point597* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point597* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point598* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point598* %0 to i8* + %6 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point599* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point599* %0 to i8* + %6 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo600([2 x i64] %0) #0 { + %2 = alloca %struct.point600, align 4 + %3 = alloca %struct.point600, align 4 + %4 = bitcast %struct.point600* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point600* %2 to i8* + %6 = bitcast %struct.point600* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point600* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point601* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point601* %0 to i8* + %6 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point602* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point602* %0 to i8* + %6 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point603* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point603* %0 to i8* + %6 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point604* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point604* %0 to i8* + %6 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo605([2 x i64] %0) #0 { + %2 = alloca %struct.point605, align 4 + %3 = alloca %struct.point605, align 4 + %4 = bitcast %struct.point605* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point605* %2 to i8* + %6 = bitcast %struct.point605* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point605* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point606* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point606* %0 to i8* + %6 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point607* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point607* %0 to i8* + %6 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point608* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point608* %0 to i8* + %6 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point609* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point609* %0 to i8* + %6 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo610([2 x i64] %0) #0 { + %2 = alloca %struct.point610, align 4 + %3 = alloca %struct.point610, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point610* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point610* %2 to i8* + %9 = bitcast %struct.point610* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point610* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo611([2 x i64] %0) #0 { + %2 = alloca %struct.point611, align 4 + %3 = alloca %struct.point611, align 4 + %4 = bitcast %struct.point611* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point611* %2 to i8* + %6 = bitcast %struct.point611* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point611* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo612([2 x i64] %0) #0 { + %2 = alloca %struct.point612, align 4 + %3 = alloca %struct.point612, align 4 + %4 = bitcast %struct.point612* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point612* %2 to i8* + %6 = bitcast %struct.point612* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point612* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo613([2 x i64] %0) #0 { + %2 = alloca %struct.point613, align 4 + %3 = alloca %struct.point613, align 4 + %4 = bitcast %struct.point613* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point613* %2 to i8* + %6 = bitcast %struct.point613* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point613* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point614* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point614* %0 to i8* + %6 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point615* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point615* %0 to i8* + %6 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo616([2 x i64] %0) #0 { + %2 = alloca %struct.point616, align 4 + %3 = alloca %struct.point616, align 4 + %4 = bitcast %struct.point616* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point616* %2 to i8* + %6 = bitcast %struct.point616* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point616* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo617([2 x i64] %0) #0 { + %2 = alloca %struct.point617, align 4 + %3 = alloca %struct.point617, align 4 + %4 = bitcast %struct.point617* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point617* %2 to i8* + %6 = bitcast %struct.point617* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point617* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo618([2 x i64] %0) #0 { + %2 = alloca %struct.point618, align 4 + %3 = alloca %struct.point618, align 4 + %4 = bitcast %struct.point618* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point618* %2 to i8* + %6 = bitcast %struct.point618* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point618* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point619* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point619* %0 to i8* + %6 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point620* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point620* %0 to i8* + %6 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo621([2 x i64] %0) #0 { + %2 = alloca %struct.point621, align 4 + %3 = alloca %struct.point621, align 4 + %4 = bitcast %struct.point621* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point621* %2 to i8* + %6 = bitcast %struct.point621* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point621* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point622* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point622* %0 to i8* + %6 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point623* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point623* %0 to i8* + %6 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point624* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point624* %0 to i8* + %6 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point625* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point625* %0 to i8* + %6 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo626([2 x i64] %0) #0 { + %2 = alloca %struct.point626, align 4 + %3 = alloca %struct.point626, align 4 + %4 = bitcast %struct.point626* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point626* %2 to i8* + %6 = bitcast %struct.point626* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point626* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point627* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point627* %0 to i8* + %6 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point628* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point628* %0 to i8* + %6 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point629* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point629* %0 to i8* + %6 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point630* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point630* %0 to i8* + %6 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo631(i64 %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + %4 = bitcast %struct.point631* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point631* %2 to i8* + %6 = bitcast %struct.point631* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point631* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo632(i64 %0) #0 { + %2 = alloca %struct.point632, align 4 + %3 = alloca %struct.point632, align 4 + %4 = bitcast %struct.point632* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point632* %2 to i8* + %6 = bitcast %struct.point632* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point632* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo633([2 x i64] %0) #0 { + %2 = alloca %struct.point633, align 4 + %3 = alloca %struct.point633, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point633* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point633* %2 to i8* + %9 = bitcast %struct.point633* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point633* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo634([2 x i64] %0) #0 { + %2 = alloca %struct.point634, align 4 + %3 = alloca %struct.point634, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point634* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point634* %2 to i8* + %9 = bitcast %struct.point634* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point634* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo635([2 x i64] %0) #0 { + %2 = alloca %struct.point635, align 4 + %3 = alloca %struct.point635, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point635* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point635* %2 to i8* + %9 = bitcast %struct.point635* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point635* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo636([2 x i64] %0) #0 { + %2 = alloca %struct.point636, align 4 + %3 = alloca %struct.point636, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point636* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point636* %2 to i8* + %9 = bitcast %struct.point636* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point636* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo637([2 x i64] %0) #0 { + %2 = alloca %struct.point637, align 4 + %3 = alloca %struct.point637, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point637* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point637* %2 to i8* + %9 = bitcast %struct.point637* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point637* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo638([2 x i64] %0) #0 { + %2 = alloca %struct.point638, align 4 + %3 = alloca %struct.point638, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point638* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point638* %2 to i8* + %9 = bitcast %struct.point638* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point638* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo639([2 x i64] %0) #0 { + %2 = alloca %struct.point639, align 4 + %3 = alloca %struct.point639, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point639* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point639* %2 to i8* + %9 = bitcast %struct.point639* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point639* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo640([2 x i64] %0) #0 { + %2 = alloca %struct.point640, align 4 + %3 = alloca %struct.point640, align 4 + %4 = bitcast %struct.point640* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point640* %2 to i8* + %6 = bitcast %struct.point640* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point640* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo641([2 x i64] %0) #0 { + %2 = alloca %struct.point641, align 4 + %3 = alloca %struct.point641, align 4 + %4 = bitcast %struct.point641* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point641* %2 to i8* + %6 = bitcast %struct.point641* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point641* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo642([2 x i64] %0) #0 { + %2 = alloca %struct.point642, align 4 + %3 = alloca %struct.point642, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point642* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point642* %2 to i8* + %9 = bitcast %struct.point642* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point642* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo643([2 x i64] %0) #0 { + %2 = alloca %struct.point643, align 4 + %3 = alloca %struct.point643, align 4 + %4 = bitcast %struct.point643* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point643* %2 to i8* + %6 = bitcast %struct.point643* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point643* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo644([2 x i64] %0) #0 { + %2 = alloca %struct.point644, align 4 + %3 = alloca %struct.point644, align 4 + %4 = bitcast %struct.point644* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point644* %2 to i8* + %6 = bitcast %struct.point644* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point644* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo645([2 x i64] %0) #0 { + %2 = alloca %struct.point645, align 4 + %3 = alloca %struct.point645, align 4 + %4 = bitcast %struct.point645* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point645* %2 to i8* + %6 = bitcast %struct.point645* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point645* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo646([2 x i64] %0) #0 { + %2 = alloca %struct.point646, align 4 + %3 = alloca %struct.point646, align 4 + %4 = bitcast %struct.point646* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point646* %2 to i8* + %6 = bitcast %struct.point646* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point646* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo647([2 x i64] %0) #0 { + %2 = alloca %struct.point647, align 4 + %3 = alloca %struct.point647, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point647* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point647* %2 to i8* + %9 = bitcast %struct.point647* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point647* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo648([2 x i64] %0) #0 { + %2 = alloca %struct.point648, align 4 + %3 = alloca %struct.point648, align 4 + %4 = bitcast %struct.point648* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point648* %2 to i8* + %6 = bitcast %struct.point648* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point648* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo649([2 x i64] %0) #0 { + %2 = alloca %struct.point649, align 4 + %3 = alloca %struct.point649, align 4 + %4 = bitcast %struct.point649* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point649* %2 to i8* + %6 = bitcast %struct.point649* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point649* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo650([2 x i64] %0) #0 { + %2 = alloca %struct.point650, align 4 + %3 = alloca %struct.point650, align 4 + %4 = bitcast %struct.point650* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point650* %2 to i8* + %6 = bitcast %struct.point650* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point650* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo651([2 x i64] %0) #0 { + %2 = alloca %struct.point651, align 4 + %3 = alloca %struct.point651, align 4 + %4 = bitcast %struct.point651* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point651* %2 to i8* + %6 = bitcast %struct.point651* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point651* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo652(i64 %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + %4 = bitcast %struct.point652* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point652* %2 to i8* + %6 = bitcast %struct.point652* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point652* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo653([2 x i64] %0) #0 { + %2 = alloca %struct.point653, align 4 + %3 = alloca %struct.point653, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point653* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point653* %2 to i8* + %9 = bitcast %struct.point653* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point653* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo654([2 x i64] %0) #0 { + %2 = alloca %struct.point654, align 4 + %3 = alloca %struct.point654, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point654* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point654* %2 to i8* + %9 = bitcast %struct.point654* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point654* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo655([2 x i64] %0) #0 { + %2 = alloca %struct.point655, align 4 + %3 = alloca %struct.point655, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point655* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point655* %2 to i8* + %9 = bitcast %struct.point655* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point655* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo656([2 x i64] %0) #0 { + %2 = alloca %struct.point656, align 4 + %3 = alloca %struct.point656, align 4 + %4 = bitcast %struct.point656* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point656* %2 to i8* + %6 = bitcast %struct.point656* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point656* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo657([2 x i64] %0) #0 { + %2 = alloca %struct.point657, align 4 + %3 = alloca %struct.point657, align 4 + %4 = bitcast %struct.point657* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point657* %2 to i8* + %6 = bitcast %struct.point657* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point657* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo658([2 x i64] %0) #0 { + %2 = alloca %struct.point658, align 4 + %3 = alloca %struct.point658, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point658* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point658* %2 to i8* + %9 = bitcast %struct.point658* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point658* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo659([2 x i64] %0) #0 { + %2 = alloca %struct.point659, align 4 + %3 = alloca %struct.point659, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point659* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point659* %2 to i8* + %9 = bitcast %struct.point659* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point659* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo660([2 x i64] %0) #0 { + %2 = alloca %struct.point660, align 4 + %3 = alloca %struct.point660, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point660* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point660* %2 to i8* + %9 = bitcast %struct.point660* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point660* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo661([2 x i64] %0) #0 { + %2 = alloca %struct.point661, align 4 + %3 = alloca %struct.point661, align 4 + %4 = bitcast %struct.point661* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point661* %2 to i8* + %6 = bitcast %struct.point661* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point661* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo662([2 x i64] %0) #0 { + %2 = alloca %struct.point662, align 4 + %3 = alloca %struct.point662, align 4 + %4 = bitcast %struct.point662* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point662* %2 to i8* + %6 = bitcast %struct.point662* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point662* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo663([2 x i64] %0) #0 { + %2 = alloca %struct.point663, align 4 + %3 = alloca %struct.point663, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point663* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point663* %2 to i8* + %9 = bitcast %struct.point663* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point663* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo664([2 x i64] %0) #0 { + %2 = alloca %struct.point664, align 4 + %3 = alloca %struct.point664, align 4 + %4 = bitcast %struct.point664* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point664* %2 to i8* + %6 = bitcast %struct.point664* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point664* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo665([2 x i64] %0) #0 { + %2 = alloca %struct.point665, align 4 + %3 = alloca %struct.point665, align 4 + %4 = bitcast %struct.point665* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point665* %2 to i8* + %6 = bitcast %struct.point665* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point665* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo666([2 x i64] %0) #0 { + %2 = alloca %struct.point666, align 4 + %3 = alloca %struct.point666, align 4 + %4 = bitcast %struct.point666* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point666* %2 to i8* + %6 = bitcast %struct.point666* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point666* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo667([2 x i64] %0) #0 { + %2 = alloca %struct.point667, align 4 + %3 = alloca %struct.point667, align 4 + %4 = bitcast %struct.point667* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point667* %2 to i8* + %6 = bitcast %struct.point667* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point667* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo668([2 x i64] %0) #0 { + %2 = alloca %struct.point668, align 4 + %3 = alloca %struct.point668, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point668* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point668* %2 to i8* + %9 = bitcast %struct.point668* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point668* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo669([2 x i64] %0) #0 { + %2 = alloca %struct.point669, align 4 + %3 = alloca %struct.point669, align 4 + %4 = bitcast %struct.point669* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point669* %2 to i8* + %6 = bitcast %struct.point669* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point669* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo670([2 x i64] %0) #0 { + %2 = alloca %struct.point670, align 4 + %3 = alloca %struct.point670, align 4 + %4 = bitcast %struct.point670* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point670* %2 to i8* + %6 = bitcast %struct.point670* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point670* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo671([2 x i64] %0) #0 { + %2 = alloca %struct.point671, align 4 + %3 = alloca %struct.point671, align 4 + %4 = bitcast %struct.point671* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point671* %2 to i8* + %6 = bitcast %struct.point671* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point671* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo672([2 x i64] %0) #0 { + %2 = alloca %struct.point672, align 4 + %3 = alloca %struct.point672, align 4 + %4 = bitcast %struct.point672* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point672* %2 to i8* + %6 = bitcast %struct.point672* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point672* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo673([2 x i64] %0) #0 { + %2 = alloca %struct.point673, align 4 + %3 = alloca %struct.point673, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point673* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point673* %2 to i8* + %9 = bitcast %struct.point673* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point673* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo674([2 x i64] %0) #0 { + %2 = alloca %struct.point674, align 4 + %3 = alloca %struct.point674, align 4 + %4 = bitcast %struct.point674* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point674* %2 to i8* + %6 = bitcast %struct.point674* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point674* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo675([2 x i64] %0) #0 { + %2 = alloca %struct.point675, align 4 + %3 = alloca %struct.point675, align 4 + %4 = bitcast %struct.point675* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point675* %2 to i8* + %6 = bitcast %struct.point675* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point675* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo676([2 x i64] %0) #0 { + %2 = alloca %struct.point676, align 4 + %3 = alloca %struct.point676, align 4 + %4 = bitcast %struct.point676* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point676* %2 to i8* + %6 = bitcast %struct.point676* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point676* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point677* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point677* %0 to i8* + %6 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point678* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point678* %0 to i8* + %6 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo679([2 x i64] %0) #0 { + %2 = alloca %struct.point679, align 4 + %3 = alloca %struct.point679, align 4 + %4 = bitcast %struct.point679* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point679* %2 to i8* + %6 = bitcast %struct.point679* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point679* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo680([2 x i64] %0) #0 { + %2 = alloca %struct.point680, align 4 + %3 = alloca %struct.point680, align 4 + %4 = bitcast %struct.point680* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point680* %2 to i8* + %6 = bitcast %struct.point680* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point680* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo681([2 x i64] %0) #0 { + %2 = alloca %struct.point681, align 4 + %3 = alloca %struct.point681, align 4 + %4 = bitcast %struct.point681* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point681* %2 to i8* + %6 = bitcast %struct.point681* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point681* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point682* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point682* %0 to i8* + %6 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point683* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point683* %0 to i8* + %6 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo684([2 x i64] %0) #0 { + %2 = alloca %struct.point684, align 4 + %3 = alloca %struct.point684, align 4 + %4 = bitcast %struct.point684* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point684* %2 to i8* + %6 = bitcast %struct.point684* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point684* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point685* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point685* %0 to i8* + %6 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point686* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point686* %0 to i8* + %6 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point687* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point687* %0 to i8* + %6 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point688* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point688* %0 to i8* + %6 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo689([2 x i64] %0) #0 { + %2 = alloca %struct.point689, align 4 + %3 = alloca %struct.point689, align 4 + %4 = bitcast %struct.point689* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point689* %2 to i8* + %6 = bitcast %struct.point689* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point689* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point690* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point690* %0 to i8* + %6 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point691* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point691* %0 to i8* + %6 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point692* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point692* %0 to i8* + %6 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point693* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point693* %0 to i8* + %6 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo694([2 x i64] %0) #0 { + %2 = alloca %struct.point694, align 4 + %3 = alloca %struct.point694, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point694* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point694* %2 to i8* + %9 = bitcast %struct.point694* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point694* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo695([2 x i64] %0) #0 { + %2 = alloca %struct.point695, align 4 + %3 = alloca %struct.point695, align 4 + %4 = bitcast %struct.point695* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point695* %2 to i8* + %6 = bitcast %struct.point695* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point695* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo696([2 x i64] %0) #0 { + %2 = alloca %struct.point696, align 4 + %3 = alloca %struct.point696, align 4 + %4 = bitcast %struct.point696* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point696* %2 to i8* + %6 = bitcast %struct.point696* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point696* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo697([2 x i64] %0) #0 { + %2 = alloca %struct.point697, align 4 + %3 = alloca %struct.point697, align 4 + %4 = bitcast %struct.point697* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point697* %2 to i8* + %6 = bitcast %struct.point697* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point697* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point698* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point698* %0 to i8* + %6 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point699* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point699* %0 to i8* + %6 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo700([2 x i64] %0) #0 { + %2 = alloca %struct.point700, align 4 + %3 = alloca %struct.point700, align 4 + %4 = bitcast %struct.point700* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point700* %2 to i8* + %6 = bitcast %struct.point700* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point700* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo701([2 x i64] %0) #0 { + %2 = alloca %struct.point701, align 4 + %3 = alloca %struct.point701, align 4 + %4 = bitcast %struct.point701* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point701* %2 to i8* + %6 = bitcast %struct.point701* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point701* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo702([2 x i64] %0) #0 { + %2 = alloca %struct.point702, align 4 + %3 = alloca %struct.point702, align 4 + %4 = bitcast %struct.point702* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point702* %2 to i8* + %6 = bitcast %struct.point702* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point702* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point703* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point703* %0 to i8* + %6 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point704* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point704* %0 to i8* + %6 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo705([2 x i64] %0) #0 { + %2 = alloca %struct.point705, align 4 + %3 = alloca %struct.point705, align 4 + %4 = bitcast %struct.point705* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point705* %2 to i8* + %6 = bitcast %struct.point705* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point705* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point706* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point706* %0 to i8* + %6 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point707* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point707* %0 to i8* + %6 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point708* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point708* %0 to i8* + %6 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point709* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point709* %0 to i8* + %6 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo710([2 x i64] %0) #0 { + %2 = alloca %struct.point710, align 4 + %3 = alloca %struct.point710, align 4 + %4 = bitcast %struct.point710* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point710* %2 to i8* + %6 = bitcast %struct.point710* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point710* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point711* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point711* %0 to i8* + %6 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point712* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point712* %0 to i8* + %6 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point713* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point713* %0 to i8* + %6 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point714* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point714* %0 to i8* + %6 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo715([2 x i64] %0) #0 { + %2 = alloca %struct.point715, align 4 + %3 = alloca %struct.point715, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point715* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point715* %2 to i8* + %9 = bitcast %struct.point715* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point715* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo716([2 x i64] %0) #0 { + %2 = alloca %struct.point716, align 4 + %3 = alloca %struct.point716, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point716* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point716* %2 to i8* + %9 = bitcast %struct.point716* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point716* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo717([2 x i64] %0) #0 { + %2 = alloca %struct.point717, align 4 + %3 = alloca %struct.point717, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point717* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point717* %2 to i8* + %9 = bitcast %struct.point717* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point717* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo718([2 x i64] %0) #0 { + %2 = alloca %struct.point718, align 4 + %3 = alloca %struct.point718, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point718* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point718* %2 to i8* + %9 = bitcast %struct.point718* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point718* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo719([2 x i64] %0) #0 { + %2 = alloca %struct.point719, align 4 + %3 = alloca %struct.point719, align 4 + %4 = bitcast %struct.point719* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point719* %2 to i8* + %6 = bitcast %struct.point719* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point719* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo720([2 x i64] %0) #0 { + %2 = alloca %struct.point720, align 4 + %3 = alloca %struct.point720, align 4 + %4 = bitcast %struct.point720* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point720* %2 to i8* + %6 = bitcast %struct.point720* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point720* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo721([2 x i64] %0) #0 { + %2 = alloca %struct.point721, align 4 + %3 = alloca %struct.point721, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point721* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point721* %2 to i8* + %9 = bitcast %struct.point721* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point721* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo722([2 x i64] %0) #0 { + %2 = alloca %struct.point722, align 4 + %3 = alloca %struct.point722, align 4 + %4 = bitcast %struct.point722* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point722* %2 to i8* + %6 = bitcast %struct.point722* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point722* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo723([2 x i64] %0) #0 { + %2 = alloca %struct.point723, align 4 + %3 = alloca %struct.point723, align 4 + %4 = bitcast %struct.point723* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point723* %2 to i8* + %6 = bitcast %struct.point723* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point723* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo724([2 x i64] %0) #0 { + %2 = alloca %struct.point724, align 4 + %3 = alloca %struct.point724, align 4 + %4 = bitcast %struct.point724* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point724* %2 to i8* + %6 = bitcast %struct.point724* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point724* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo725([2 x i64] %0) #0 { + %2 = alloca %struct.point725, align 4 + %3 = alloca %struct.point725, align 4 + %4 = bitcast %struct.point725* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point725* %2 to i8* + %6 = bitcast %struct.point725* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point725* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo726([2 x i64] %0) #0 { + %2 = alloca %struct.point726, align 4 + %3 = alloca %struct.point726, align 4 + %4 = bitcast %struct.point726* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point726* %2 to i8* + %6 = bitcast %struct.point726* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point726* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point727* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point727* %0 to i8* + %6 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point728* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point728* %0 to i8* + %6 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point729* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point729* %0 to i8* + %6 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point730* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point730* %0 to i8* + %6 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo731([2 x i64] %0) #0 { + %2 = alloca %struct.point731, align 4 + %3 = alloca %struct.point731, align 4 + %4 = bitcast %struct.point731* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point731* %2 to i8* + %6 = bitcast %struct.point731* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point731* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point732* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point732* %0 to i8* + %6 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point733* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point733* %0 to i8* + %6 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point734* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point734* %0 to i8* + %6 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point735* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point735* %0 to i8* + %6 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo736([2 x i64] %0) #0 { + %2 = alloca %struct.point736, align 4 + %3 = alloca %struct.point736, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point736* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point736* %2 to i8* + %9 = bitcast %struct.point736* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point736* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo737([2 x i64] %0) #0 { + %2 = alloca %struct.point737, align 4 + %3 = alloca %struct.point737, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point737* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point737* %2 to i8* + %9 = bitcast %struct.point737* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point737* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo738([2 x i64] %0) #0 { + %2 = alloca %struct.point738, align 4 + %3 = alloca %struct.point738, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point738* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point738* %2 to i8* + %9 = bitcast %struct.point738* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point738* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo739([2 x i64] %0) #0 { + %2 = alloca %struct.point739, align 4 + %3 = alloca %struct.point739, align 4 + %4 = bitcast %struct.point739* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point739* %2 to i8* + %6 = bitcast %struct.point739* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point739* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo740([2 x i64] %0) #0 { + %2 = alloca %struct.point740, align 4 + %3 = alloca %struct.point740, align 4 + %4 = bitcast %struct.point740* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point740* %2 to i8* + %6 = bitcast %struct.point740* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point740* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo741([2 x i64] %0) #0 { + %2 = alloca %struct.point741, align 4 + %3 = alloca %struct.point741, align 4 + %4 = bitcast %struct.point741* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point741* %2 to i8* + %6 = bitcast %struct.point741* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point741* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo742([2 x i64] %0) #0 { + %2 = alloca %struct.point742, align 4 + %3 = alloca %struct.point742, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point742* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point742* %2 to i8* + %9 = bitcast %struct.point742* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point742* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo743([2 x i64] %0) #0 { + %2 = alloca %struct.point743, align 4 + %3 = alloca %struct.point743, align 4 + %4 = bitcast %struct.point743* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point743* %2 to i8* + %6 = bitcast %struct.point743* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point743* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo744([2 x i64] %0) #0 { + %2 = alloca %struct.point744, align 4 + %3 = alloca %struct.point744, align 4 + %4 = bitcast %struct.point744* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point744* %2 to i8* + %6 = bitcast %struct.point744* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point744* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo745([2 x i64] %0) #0 { + %2 = alloca %struct.point745, align 4 + %3 = alloca %struct.point745, align 4 + %4 = bitcast %struct.point745* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point745* %2 to i8* + %6 = bitcast %struct.point745* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point745* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo746([2 x i64] %0) #0 { + %2 = alloca %struct.point746, align 4 + %3 = alloca %struct.point746, align 4 + %4 = bitcast %struct.point746* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point746* %2 to i8* + %6 = bitcast %struct.point746* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point746* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo747([2 x i64] %0) #0 { + %2 = alloca %struct.point747, align 4 + %3 = alloca %struct.point747, align 4 + %4 = bitcast %struct.point747* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point747* %2 to i8* + %6 = bitcast %struct.point747* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point747* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point748* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point748* %0 to i8* + %6 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point749* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point749* %0 to i8* + %6 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point750* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point750* %0 to i8* + %6 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point751* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point751* %0 to i8* + %6 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo752([2 x i64] %0) #0 { + %2 = alloca %struct.point752, align 4 + %3 = alloca %struct.point752, align 4 + %4 = bitcast %struct.point752* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point752* %2 to i8* + %6 = bitcast %struct.point752* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point752* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point753* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point753* %0 to i8* + %6 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point754* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point754* %0 to i8* + %6 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point755* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point755* %0 to i8* + %6 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point756* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point756* %0 to i8* + %6 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo757([2 x i64] %0) #0 { + %2 = alloca %struct.point757, align 4 + %3 = alloca %struct.point757, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point757* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point757* %2 to i8* + %9 = bitcast %struct.point757* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point757* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo758([2 x i64] %0) #0 { + %2 = alloca %struct.point758, align 4 + %3 = alloca %struct.point758, align 4 + %4 = bitcast %struct.point758* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point758* %2 to i8* + %6 = bitcast %struct.point758* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point758* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo759([2 x i64] %0) #0 { + %2 = alloca %struct.point759, align 4 + %3 = alloca %struct.point759, align 4 + %4 = bitcast %struct.point759* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point759* %2 to i8* + %6 = bitcast %struct.point759* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point759* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo760([2 x i64] %0) #0 { + %2 = alloca %struct.point760, align 4 + %3 = alloca %struct.point760, align 4 + %4 = bitcast %struct.point760* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point760* %2 to i8* + %6 = bitcast %struct.point760* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point760* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point761* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point761* %0 to i8* + %6 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point762* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point762* %0 to i8* + %6 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo763([2 x i64] %0) #0 { + %2 = alloca %struct.point763, align 4 + %3 = alloca %struct.point763, align 4 + %4 = bitcast %struct.point763* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point763* %2 to i8* + %6 = bitcast %struct.point763* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point763* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo764([2 x i64] %0) #0 { + %2 = alloca %struct.point764, align 4 + %3 = alloca %struct.point764, align 4 + %4 = bitcast %struct.point764* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point764* %2 to i8* + %6 = bitcast %struct.point764* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point764* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo765([2 x i64] %0) #0 { + %2 = alloca %struct.point765, align 4 + %3 = alloca %struct.point765, align 4 + %4 = bitcast %struct.point765* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point765* %2 to i8* + %6 = bitcast %struct.point765* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point765* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point766* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point766* %0 to i8* + %6 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point767* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point767* %0 to i8* + %6 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo768([2 x i64] %0) #0 { + %2 = alloca %struct.point768, align 4 + %3 = alloca %struct.point768, align 4 + %4 = bitcast %struct.point768* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point768* %2 to i8* + %6 = bitcast %struct.point768* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point768* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point769* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point769* %0 to i8* + %6 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point770* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point770* %0 to i8* + %6 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point771* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point771* %0 to i8* + %6 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point772* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point772* %0 to i8* + %6 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo773([2 x i64] %0) #0 { + %2 = alloca %struct.point773, align 4 + %3 = alloca %struct.point773, align 4 + %4 = bitcast %struct.point773* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point773* %2 to i8* + %6 = bitcast %struct.point773* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point773* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point774* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point774* %0 to i8* + %6 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point775* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point775* %0 to i8* + %6 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point776* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point776* %0 to i8* + %6 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point777* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point777* %0 to i8* + %6 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo778([2 x i64] %0) #0 { + %2 = alloca %struct.point778, align 4 + %3 = alloca %struct.point778, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point778* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point778* %2 to i8* + %9 = bitcast %struct.point778* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point778* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo779([2 x i64] %0) #0 { + %2 = alloca %struct.point779, align 4 + %3 = alloca %struct.point779, align 4 + %4 = bitcast %struct.point779* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point779* %2 to i8* + %6 = bitcast %struct.point779* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point779* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo780([2 x i64] %0) #0 { + %2 = alloca %struct.point780, align 4 + %3 = alloca %struct.point780, align 4 + %4 = bitcast %struct.point780* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point780* %2 to i8* + %6 = bitcast %struct.point780* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point780* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo781([2 x i64] %0) #0 { + %2 = alloca %struct.point781, align 4 + %3 = alloca %struct.point781, align 4 + %4 = bitcast %struct.point781* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point781* %2 to i8* + %6 = bitcast %struct.point781* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point781* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point782* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point782* %0 to i8* + %6 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point783* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point783* %0 to i8* + %6 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo784([2 x i64] %0) #0 { + %2 = alloca %struct.point784, align 4 + %3 = alloca %struct.point784, align 4 + %4 = bitcast %struct.point784* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point784* %2 to i8* + %6 = bitcast %struct.point784* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point784* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo785([2 x i64] %0) #0 { + %2 = alloca %struct.point785, align 4 + %3 = alloca %struct.point785, align 4 + %4 = bitcast %struct.point785* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point785* %2 to i8* + %6 = bitcast %struct.point785* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point785* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo786([2 x i64] %0) #0 { + %2 = alloca %struct.point786, align 4 + %3 = alloca %struct.point786, align 4 + %4 = bitcast %struct.point786* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point786* %2 to i8* + %6 = bitcast %struct.point786* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point786* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point787* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point787* %0 to i8* + %6 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point788* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point788* %0 to i8* + %6 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo789([2 x i64] %0) #0 { + %2 = alloca %struct.point789, align 4 + %3 = alloca %struct.point789, align 4 + %4 = bitcast %struct.point789* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point789* %2 to i8* + %6 = bitcast %struct.point789* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point789* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point790* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point790* %0 to i8* + %6 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point791* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point791* %0 to i8* + %6 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point792* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point792* %0 to i8* + %6 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point793* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point793* %0 to i8* + %6 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo794([2 x i64] %0) #0 { + %2 = alloca %struct.point794, align 4 + %3 = alloca %struct.point794, align 4 + %4 = bitcast %struct.point794* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point794* %2 to i8* + %6 = bitcast %struct.point794* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point794* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point795* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point795* %0 to i8* + %6 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point796* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point796* %0 to i8* + %6 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point797* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point797* %0 to i8* + %6 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point798* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point798* %0 to i8* + %6 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo799(i64 %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + %4 = bitcast %struct.point799* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point799* %2 to i8* + %6 = bitcast %struct.point799* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point799* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo800(i64 %0) #0 { + %2 = alloca %struct.point800, align 4 + %3 = alloca %struct.point800, align 4 + %4 = bitcast %struct.point800* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point800* %2 to i8* + %6 = bitcast %struct.point800* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point800* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo801(i64 %0) #0 { + %2 = alloca %struct.point801, align 4 + %3 = alloca %struct.point801, align 4 + %4 = bitcast %struct.point801* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point801* %2 to i8* + %6 = bitcast %struct.point801* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point801* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo802([2 x i64] %0) #0 { + %2 = alloca %struct.point802, align 4 + %3 = alloca %struct.point802, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point802* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point802* %2 to i8* + %9 = bitcast %struct.point802* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point802* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo803([2 x i64] %0) #0 { + %2 = alloca %struct.point803, align 4 + %3 = alloca %struct.point803, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point803* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point803* %2 to i8* + %9 = bitcast %struct.point803* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point803* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo804([2 x i64] %0) #0 { + %2 = alloca %struct.point804, align 4 + %3 = alloca %struct.point804, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point804* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point804* %2 to i8* + %9 = bitcast %struct.point804* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point804* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo805(i64 %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + %4 = bitcast %struct.point805* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point805* %2 to i8* + %6 = bitcast %struct.point805* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point805* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo806([2 x i64] %0) #0 { + %2 = alloca %struct.point806, align 4 + %3 = alloca %struct.point806, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point806* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point806* %2 to i8* + %9 = bitcast %struct.point806* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point806* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo807([2 x i64] %0) #0 { + %2 = alloca %struct.point807, align 4 + %3 = alloca %struct.point807, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point807* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point807* %2 to i8* + %9 = bitcast %struct.point807* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point807* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo808([2 x i64] %0) #0 { + %2 = alloca %struct.point808, align 4 + %3 = alloca %struct.point808, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point808* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point808* %2 to i8* + %9 = bitcast %struct.point808* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point808* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo809([2 x i64] %0) #0 { + %2 = alloca %struct.point809, align 4 + %3 = alloca %struct.point809, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point809* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point809* %2 to i8* + %9 = bitcast %struct.point809* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point809* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo810([2 x i64] %0) #0 { + %2 = alloca %struct.point810, align 4 + %3 = alloca %struct.point810, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point810* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point810* %2 to i8* + %9 = bitcast %struct.point810* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point810* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo811([2 x i64] %0) #0 { + %2 = alloca %struct.point811, align 4 + %3 = alloca %struct.point811, align 4 + %4 = bitcast %struct.point811* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point811* %2 to i8* + %6 = bitcast %struct.point811* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point811* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo812([2 x i64] %0) #0 { + %2 = alloca %struct.point812, align 4 + %3 = alloca %struct.point812, align 4 + %4 = bitcast %struct.point812* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point812* %2 to i8* + %6 = bitcast %struct.point812* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point812* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo813([2 x i64] %0) #0 { + %2 = alloca %struct.point813, align 4 + %3 = alloca %struct.point813, align 4 + %4 = bitcast %struct.point813* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point813* %2 to i8* + %6 = bitcast %struct.point813* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point813* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo814([2 x i64] %0) #0 { + %2 = alloca %struct.point814, align 4 + %3 = alloca %struct.point814, align 4 + %4 = bitcast %struct.point814* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point814* %2 to i8* + %6 = bitcast %struct.point814* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point814* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo815([2 x i64] %0) #0 { + %2 = alloca %struct.point815, align 4 + %3 = alloca %struct.point815, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point815* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point815* %2 to i8* + %9 = bitcast %struct.point815* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point815* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo816([2 x i64] %0) #0 { + %2 = alloca %struct.point816, align 4 + %3 = alloca %struct.point816, align 4 + %4 = bitcast %struct.point816* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point816* %2 to i8* + %6 = bitcast %struct.point816* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point816* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo817([2 x i64] %0) #0 { + %2 = alloca %struct.point817, align 4 + %3 = alloca %struct.point817, align 4 + %4 = bitcast %struct.point817* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point817* %2 to i8* + %6 = bitcast %struct.point817* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point817* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo818([2 x i64] %0) #0 { + %2 = alloca %struct.point818, align 4 + %3 = alloca %struct.point818, align 4 + %4 = bitcast %struct.point818* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point818* %2 to i8* + %6 = bitcast %struct.point818* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point818* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo819([2 x i64] %0) #0 { + %2 = alloca %struct.point819, align 4 + %3 = alloca %struct.point819, align 4 + %4 = bitcast %struct.point819* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point819* %2 to i8* + %6 = bitcast %struct.point819* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point819* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo820(i64 %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + %4 = bitcast %struct.point820* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point820* %2 to i8* + %6 = bitcast %struct.point820* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point820* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo821([2 x i64] %0) #0 { + %2 = alloca %struct.point821, align 4 + %3 = alloca %struct.point821, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point821* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point821* %2 to i8* + %9 = bitcast %struct.point821* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point821* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo822([2 x i64] %0) #0 { + %2 = alloca %struct.point822, align 4 + %3 = alloca %struct.point822, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point822* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point822* %2 to i8* + %9 = bitcast %struct.point822* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point822* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo823([2 x i64] %0) #0 { + %2 = alloca %struct.point823, align 4 + %3 = alloca %struct.point823, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point823* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point823* %2 to i8* + %9 = bitcast %struct.point823* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point823* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo824([2 x i64] %0) #0 { + %2 = alloca %struct.point824, align 4 + %3 = alloca %struct.point824, align 4 + %4 = bitcast %struct.point824* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point824* %2 to i8* + %6 = bitcast %struct.point824* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point824* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo825([2 x i64] %0) #0 { + %2 = alloca %struct.point825, align 4 + %3 = alloca %struct.point825, align 4 + %4 = bitcast %struct.point825* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point825* %2 to i8* + %6 = bitcast %struct.point825* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point825* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo826([2 x i64] %0) #0 { + %2 = alloca %struct.point826, align 4 + %3 = alloca %struct.point826, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point826* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point826* %2 to i8* + %9 = bitcast %struct.point826* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point826* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo827([2 x i64] %0) #0 { + %2 = alloca %struct.point827, align 4 + %3 = alloca %struct.point827, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point827* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point827* %2 to i8* + %9 = bitcast %struct.point827* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point827* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo828([2 x i64] %0) #0 { + %2 = alloca %struct.point828, align 4 + %3 = alloca %struct.point828, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point828* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point828* %2 to i8* + %9 = bitcast %struct.point828* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point828* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo829([2 x i64] %0) #0 { + %2 = alloca %struct.point829, align 4 + %3 = alloca %struct.point829, align 4 + %4 = bitcast %struct.point829* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point829* %2 to i8* + %6 = bitcast %struct.point829* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point829* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo830([2 x i64] %0) #0 { + %2 = alloca %struct.point830, align 4 + %3 = alloca %struct.point830, align 4 + %4 = bitcast %struct.point830* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point830* %2 to i8* + %6 = bitcast %struct.point830* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point830* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo831([2 x i64] %0) #0 { + %2 = alloca %struct.point831, align 4 + %3 = alloca %struct.point831, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point831* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point831* %2 to i8* + %9 = bitcast %struct.point831* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point831* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo832([2 x i64] %0) #0 { + %2 = alloca %struct.point832, align 4 + %3 = alloca %struct.point832, align 4 + %4 = bitcast %struct.point832* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point832* %2 to i8* + %6 = bitcast %struct.point832* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point832* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo833([2 x i64] %0) #0 { + %2 = alloca %struct.point833, align 4 + %3 = alloca %struct.point833, align 4 + %4 = bitcast %struct.point833* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point833* %2 to i8* + %6 = bitcast %struct.point833* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point833* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo834([2 x i64] %0) #0 { + %2 = alloca %struct.point834, align 4 + %3 = alloca %struct.point834, align 4 + %4 = bitcast %struct.point834* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point834* %2 to i8* + %6 = bitcast %struct.point834* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point834* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo835([2 x i64] %0) #0 { + %2 = alloca %struct.point835, align 4 + %3 = alloca %struct.point835, align 4 + %4 = bitcast %struct.point835* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point835* %2 to i8* + %6 = bitcast %struct.point835* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point835* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo836([2 x i64] %0) #0 { + %2 = alloca %struct.point836, align 4 + %3 = alloca %struct.point836, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point836* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point836* %2 to i8* + %9 = bitcast %struct.point836* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point836* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo837([2 x i64] %0) #0 { + %2 = alloca %struct.point837, align 4 + %3 = alloca %struct.point837, align 4 + %4 = bitcast %struct.point837* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point837* %2 to i8* + %6 = bitcast %struct.point837* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point837* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo838([2 x i64] %0) #0 { + %2 = alloca %struct.point838, align 4 + %3 = alloca %struct.point838, align 4 + %4 = bitcast %struct.point838* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point838* %2 to i8* + %6 = bitcast %struct.point838* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point838* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo839([2 x i64] %0) #0 { + %2 = alloca %struct.point839, align 4 + %3 = alloca %struct.point839, align 4 + %4 = bitcast %struct.point839* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point839* %2 to i8* + %6 = bitcast %struct.point839* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point839* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo840([2 x i64] %0) #0 { + %2 = alloca %struct.point840, align 4 + %3 = alloca %struct.point840, align 4 + %4 = bitcast %struct.point840* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point840* %2 to i8* + %6 = bitcast %struct.point840* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point840* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo841([2 x i64] %0) #0 { + %2 = alloca %struct.point841, align 4 + %3 = alloca %struct.point841, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point841* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point841* %2 to i8* + %9 = bitcast %struct.point841* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point841* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo842([2 x i64] %0) #0 { + %2 = alloca %struct.point842, align 4 + %3 = alloca %struct.point842, align 4 + %4 = bitcast %struct.point842* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point842* %2 to i8* + %6 = bitcast %struct.point842* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point842* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo843([2 x i64] %0) #0 { + %2 = alloca %struct.point843, align 4 + %3 = alloca %struct.point843, align 4 + %4 = bitcast %struct.point843* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point843* %2 to i8* + %6 = bitcast %struct.point843* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point843* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo844([2 x i64] %0) #0 { + %2 = alloca %struct.point844, align 4 + %3 = alloca %struct.point844, align 4 + %4 = bitcast %struct.point844* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point844* %2 to i8* + %6 = bitcast %struct.point844* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point844* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point845* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point845* %0 to i8* + %6 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point846* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point846* %0 to i8* + %6 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo847([2 x i64] %0) #0 { + %2 = alloca %struct.point847, align 4 + %3 = alloca %struct.point847, align 4 + %4 = bitcast %struct.point847* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point847* %2 to i8* + %6 = bitcast %struct.point847* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point847* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo848([2 x i64] %0) #0 { + %2 = alloca %struct.point848, align 4 + %3 = alloca %struct.point848, align 4 + %4 = bitcast %struct.point848* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point848* %2 to i8* + %6 = bitcast %struct.point848* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point848* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo849([2 x i64] %0) #0 { + %2 = alloca %struct.point849, align 4 + %3 = alloca %struct.point849, align 4 + %4 = bitcast %struct.point849* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point849* %2 to i8* + %6 = bitcast %struct.point849* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point849* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point850* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point850* %0 to i8* + %6 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point851* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point851* %0 to i8* + %6 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo852([2 x i64] %0) #0 { + %2 = alloca %struct.point852, align 4 + %3 = alloca %struct.point852, align 4 + %4 = bitcast %struct.point852* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point852* %2 to i8* + %6 = bitcast %struct.point852* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point852* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point853* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point853* %0 to i8* + %6 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point854* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point854* %0 to i8* + %6 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point855* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point855* %0 to i8* + %6 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point856* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point856* %0 to i8* + %6 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo857([2 x i64] %0) #0 { + %2 = alloca %struct.point857, align 4 + %3 = alloca %struct.point857, align 4 + %4 = bitcast %struct.point857* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point857* %2 to i8* + %6 = bitcast %struct.point857* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point857* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point858* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point858* %0 to i8* + %6 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point859* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point859* %0 to i8* + %6 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point860* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point860* %0 to i8* + %6 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point861* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point861* %0 to i8* + %6 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo862([2 x i64] %0) #0 { + %2 = alloca %struct.point862, align 4 + %3 = alloca %struct.point862, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point862* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point862* %2 to i8* + %9 = bitcast %struct.point862* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point862* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo863([2 x i64] %0) #0 { + %2 = alloca %struct.point863, align 4 + %3 = alloca %struct.point863, align 4 + %4 = bitcast %struct.point863* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point863* %2 to i8* + %6 = bitcast %struct.point863* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point863* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo864([2 x i64] %0) #0 { + %2 = alloca %struct.point864, align 4 + %3 = alloca %struct.point864, align 4 + %4 = bitcast %struct.point864* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point864* %2 to i8* + %6 = bitcast %struct.point864* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point864* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo865([2 x i64] %0) #0 { + %2 = alloca %struct.point865, align 4 + %3 = alloca %struct.point865, align 4 + %4 = bitcast %struct.point865* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point865* %2 to i8* + %6 = bitcast %struct.point865* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point865* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point866* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point866* %0 to i8* + %6 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point867* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point867* %0 to i8* + %6 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo868([2 x i64] %0) #0 { + %2 = alloca %struct.point868, align 4 + %3 = alloca %struct.point868, align 4 + %4 = bitcast %struct.point868* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point868* %2 to i8* + %6 = bitcast %struct.point868* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point868* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo869([2 x i64] %0) #0 { + %2 = alloca %struct.point869, align 4 + %3 = alloca %struct.point869, align 4 + %4 = bitcast %struct.point869* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point869* %2 to i8* + %6 = bitcast %struct.point869* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point869* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo870([2 x i64] %0) #0 { + %2 = alloca %struct.point870, align 4 + %3 = alloca %struct.point870, align 4 + %4 = bitcast %struct.point870* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point870* %2 to i8* + %6 = bitcast %struct.point870* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point870* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point871* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point871* %0 to i8* + %6 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point872* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point872* %0 to i8* + %6 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo873([2 x i64] %0) #0 { + %2 = alloca %struct.point873, align 4 + %3 = alloca %struct.point873, align 4 + %4 = bitcast %struct.point873* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point873* %2 to i8* + %6 = bitcast %struct.point873* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point873* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point874* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point874* %0 to i8* + %6 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point875* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point875* %0 to i8* + %6 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point876* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point876* %0 to i8* + %6 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point877* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point877* %0 to i8* + %6 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo878([2 x i64] %0) #0 { + %2 = alloca %struct.point878, align 4 + %3 = alloca %struct.point878, align 4 + %4 = bitcast %struct.point878* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point878* %2 to i8* + %6 = bitcast %struct.point878* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point878* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point879* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point879* %0 to i8* + %6 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point880* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point880* %0 to i8* + %6 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point881* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point881* %0 to i8* + %6 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point882* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point882* %0 to i8* + %6 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo883(i64 %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + %4 = bitcast %struct.point883* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point883* %2 to i8* + %6 = bitcast %struct.point883* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point883* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo884(i64 %0) #0 { + %2 = alloca %struct.point884, align 4 + %3 = alloca %struct.point884, align 4 + %4 = bitcast %struct.point884* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point884* %2 to i8* + %6 = bitcast %struct.point884* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point884* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo885([2 x i64] %0) #0 { + %2 = alloca %struct.point885, align 4 + %3 = alloca %struct.point885, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point885* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point885* %2 to i8* + %9 = bitcast %struct.point885* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point885* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo886([2 x i64] %0) #0 { + %2 = alloca %struct.point886, align 4 + %3 = alloca %struct.point886, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point886* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point886* %2 to i8* + %9 = bitcast %struct.point886* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point886* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo887([2 x i64] %0) #0 { + %2 = alloca %struct.point887, align 4 + %3 = alloca %struct.point887, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point887* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point887* %2 to i8* + %9 = bitcast %struct.point887* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point887* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo888([2 x i64] %0) #0 { + %2 = alloca %struct.point888, align 4 + %3 = alloca %struct.point888, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point888* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point888* %2 to i8* + %9 = bitcast %struct.point888* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point888* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo889([2 x i64] %0) #0 { + %2 = alloca %struct.point889, align 4 + %3 = alloca %struct.point889, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point889* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point889* %2 to i8* + %9 = bitcast %struct.point889* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point889* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo890([2 x i64] %0) #0 { + %2 = alloca %struct.point890, align 4 + %3 = alloca %struct.point890, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point890* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point890* %2 to i8* + %9 = bitcast %struct.point890* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point890* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo891([2 x i64] %0) #0 { + %2 = alloca %struct.point891, align 4 + %3 = alloca %struct.point891, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point891* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point891* %2 to i8* + %9 = bitcast %struct.point891* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point891* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo892([2 x i64] %0) #0 { + %2 = alloca %struct.point892, align 4 + %3 = alloca %struct.point892, align 4 + %4 = bitcast %struct.point892* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point892* %2 to i8* + %6 = bitcast %struct.point892* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point892* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo893([2 x i64] %0) #0 { + %2 = alloca %struct.point893, align 4 + %3 = alloca %struct.point893, align 4 + %4 = bitcast %struct.point893* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point893* %2 to i8* + %6 = bitcast %struct.point893* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point893* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo894([2 x i64] %0) #0 { + %2 = alloca %struct.point894, align 4 + %3 = alloca %struct.point894, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point894* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point894* %2 to i8* + %9 = bitcast %struct.point894* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point894* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo895([2 x i64] %0) #0 { + %2 = alloca %struct.point895, align 4 + %3 = alloca %struct.point895, align 4 + %4 = bitcast %struct.point895* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point895* %2 to i8* + %6 = bitcast %struct.point895* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point895* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo896([2 x i64] %0) #0 { + %2 = alloca %struct.point896, align 4 + %3 = alloca %struct.point896, align 4 + %4 = bitcast %struct.point896* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point896* %2 to i8* + %6 = bitcast %struct.point896* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point896* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo897([2 x i64] %0) #0 { + %2 = alloca %struct.point897, align 4 + %3 = alloca %struct.point897, align 4 + %4 = bitcast %struct.point897* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point897* %2 to i8* + %6 = bitcast %struct.point897* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point897* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo898([2 x i64] %0) #0 { + %2 = alloca %struct.point898, align 4 + %3 = alloca %struct.point898, align 4 + %4 = bitcast %struct.point898* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point898* %2 to i8* + %6 = bitcast %struct.point898* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point898* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo899([2 x i64] %0) #0 { + %2 = alloca %struct.point899, align 4 + %3 = alloca %struct.point899, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point899* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point899* %2 to i8* + %9 = bitcast %struct.point899* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point899* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo900([2 x i64] %0) #0 { + %2 = alloca %struct.point900, align 4 + %3 = alloca %struct.point900, align 4 + %4 = bitcast %struct.point900* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point900* %2 to i8* + %6 = bitcast %struct.point900* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point900* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo901([2 x i64] %0) #0 { + %2 = alloca %struct.point901, align 4 + %3 = alloca %struct.point901, align 4 + %4 = bitcast %struct.point901* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point901* %2 to i8* + %6 = bitcast %struct.point901* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point901* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo902([2 x i64] %0) #0 { + %2 = alloca %struct.point902, align 4 + %3 = alloca %struct.point902, align 4 + %4 = bitcast %struct.point902* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point902* %2 to i8* + %6 = bitcast %struct.point902* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point902* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo903([2 x i64] %0) #0 { + %2 = alloca %struct.point903, align 4 + %3 = alloca %struct.point903, align 4 + %4 = bitcast %struct.point903* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point903* %2 to i8* + %6 = bitcast %struct.point903* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point903* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo904(i64 %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + %4 = bitcast %struct.point904* %3 to i64* + store i64 %0, i64* %4, align 4 + %5 = bitcast %struct.point904* %2 to i8* + %6 = bitcast %struct.point904* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 8, i1 false) + %7 = bitcast %struct.point904* %2 to i64* + %8 = load i64, i64* %7, align 4 + ret i64 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo905([2 x i64] %0) #0 { + %2 = alloca %struct.point905, align 4 + %3 = alloca %struct.point905, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point905* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point905* %2 to i8* + %9 = bitcast %struct.point905* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point905* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo906([2 x i64] %0) #0 { + %2 = alloca %struct.point906, align 4 + %3 = alloca %struct.point906, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point906* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point906* %2 to i8* + %9 = bitcast %struct.point906* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point906* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo907([2 x i64] %0) #0 { + %2 = alloca %struct.point907, align 4 + %3 = alloca %struct.point907, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point907* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point907* %2 to i8* + %9 = bitcast %struct.point907* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point907* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo908([2 x i64] %0) #0 { + %2 = alloca %struct.point908, align 4 + %3 = alloca %struct.point908, align 4 + %4 = bitcast %struct.point908* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point908* %2 to i8* + %6 = bitcast %struct.point908* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point908* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo909([2 x i64] %0) #0 { + %2 = alloca %struct.point909, align 4 + %3 = alloca %struct.point909, align 4 + %4 = bitcast %struct.point909* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point909* %2 to i8* + %6 = bitcast %struct.point909* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point909* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo910([2 x i64] %0) #0 { + %2 = alloca %struct.point910, align 4 + %3 = alloca %struct.point910, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point910* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point910* %2 to i8* + %9 = bitcast %struct.point910* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point910* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo911([2 x i64] %0) #0 { + %2 = alloca %struct.point911, align 4 + %3 = alloca %struct.point911, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point911* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point911* %2 to i8* + %9 = bitcast %struct.point911* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point911* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo912([2 x i64] %0) #0 { + %2 = alloca %struct.point912, align 4 + %3 = alloca %struct.point912, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point912* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point912* %2 to i8* + %9 = bitcast %struct.point912* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point912* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo913([2 x i64] %0) #0 { + %2 = alloca %struct.point913, align 4 + %3 = alloca %struct.point913, align 4 + %4 = bitcast %struct.point913* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point913* %2 to i8* + %6 = bitcast %struct.point913* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point913* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo914([2 x i64] %0) #0 { + %2 = alloca %struct.point914, align 4 + %3 = alloca %struct.point914, align 4 + %4 = bitcast %struct.point914* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point914* %2 to i8* + %6 = bitcast %struct.point914* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point914* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo915([2 x i64] %0) #0 { + %2 = alloca %struct.point915, align 4 + %3 = alloca %struct.point915, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point915* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point915* %2 to i8* + %9 = bitcast %struct.point915* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point915* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo916([2 x i64] %0) #0 { + %2 = alloca %struct.point916, align 4 + %3 = alloca %struct.point916, align 4 + %4 = bitcast %struct.point916* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point916* %2 to i8* + %6 = bitcast %struct.point916* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point916* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo917([2 x i64] %0) #0 { + %2 = alloca %struct.point917, align 4 + %3 = alloca %struct.point917, align 4 + %4 = bitcast %struct.point917* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point917* %2 to i8* + %6 = bitcast %struct.point917* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point917* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo918([2 x i64] %0) #0 { + %2 = alloca %struct.point918, align 4 + %3 = alloca %struct.point918, align 4 + %4 = bitcast %struct.point918* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point918* %2 to i8* + %6 = bitcast %struct.point918* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point918* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo919([2 x i64] %0) #0 { + %2 = alloca %struct.point919, align 4 + %3 = alloca %struct.point919, align 4 + %4 = bitcast %struct.point919* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point919* %2 to i8* + %6 = bitcast %struct.point919* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point919* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo920([2 x i64] %0) #0 { + %2 = alloca %struct.point920, align 4 + %3 = alloca %struct.point920, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point920* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point920* %2 to i8* + %9 = bitcast %struct.point920* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point920* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo921([2 x i64] %0) #0 { + %2 = alloca %struct.point921, align 4 + %3 = alloca %struct.point921, align 4 + %4 = bitcast %struct.point921* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point921* %2 to i8* + %6 = bitcast %struct.point921* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point921* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo922([2 x i64] %0) #0 { + %2 = alloca %struct.point922, align 4 + %3 = alloca %struct.point922, align 4 + %4 = bitcast %struct.point922* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point922* %2 to i8* + %6 = bitcast %struct.point922* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point922* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo923([2 x i64] %0) #0 { + %2 = alloca %struct.point923, align 4 + %3 = alloca %struct.point923, align 4 + %4 = bitcast %struct.point923* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point923* %2 to i8* + %6 = bitcast %struct.point923* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point923* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo924([2 x i64] %0) #0 { + %2 = alloca %struct.point924, align 4 + %3 = alloca %struct.point924, align 4 + %4 = bitcast %struct.point924* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point924* %2 to i8* + %6 = bitcast %struct.point924* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point924* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo925([2 x i64] %0) #0 { + %2 = alloca %struct.point925, align 4 + %3 = alloca %struct.point925, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point925* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point925* %2 to i8* + %9 = bitcast %struct.point925* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point925* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo926([2 x i64] %0) #0 { + %2 = alloca %struct.point926, align 4 + %3 = alloca %struct.point926, align 4 + %4 = bitcast %struct.point926* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point926* %2 to i8* + %6 = bitcast %struct.point926* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point926* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo927([2 x i64] %0) #0 { + %2 = alloca %struct.point927, align 4 + %3 = alloca %struct.point927, align 4 + %4 = bitcast %struct.point927* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point927* %2 to i8* + %6 = bitcast %struct.point927* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point927* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo928([2 x i64] %0) #0 { + %2 = alloca %struct.point928, align 4 + %3 = alloca %struct.point928, align 4 + %4 = bitcast %struct.point928* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point928* %2 to i8* + %6 = bitcast %struct.point928* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point928* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point929* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point929* %0 to i8* + %6 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point930* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point930* %0 to i8* + %6 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo931([2 x i64] %0) #0 { + %2 = alloca %struct.point931, align 4 + %3 = alloca %struct.point931, align 4 + %4 = bitcast %struct.point931* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point931* %2 to i8* + %6 = bitcast %struct.point931* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point931* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo932([2 x i64] %0) #0 { + %2 = alloca %struct.point932, align 4 + %3 = alloca %struct.point932, align 4 + %4 = bitcast %struct.point932* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point932* %2 to i8* + %6 = bitcast %struct.point932* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point932* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo933([2 x i64] %0) #0 { + %2 = alloca %struct.point933, align 4 + %3 = alloca %struct.point933, align 4 + %4 = bitcast %struct.point933* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point933* %2 to i8* + %6 = bitcast %struct.point933* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point933* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point934* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point934* %0 to i8* + %6 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point935* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point935* %0 to i8* + %6 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo936([2 x i64] %0) #0 { + %2 = alloca %struct.point936, align 4 + %3 = alloca %struct.point936, align 4 + %4 = bitcast %struct.point936* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point936* %2 to i8* + %6 = bitcast %struct.point936* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point936* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point937* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point937* %0 to i8* + %6 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point938* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point938* %0 to i8* + %6 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point939* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point939* %0 to i8* + %6 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point940* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point940* %0 to i8* + %6 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo941([2 x i64] %0) #0 { + %2 = alloca %struct.point941, align 4 + %3 = alloca %struct.point941, align 4 + %4 = bitcast %struct.point941* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point941* %2 to i8* + %6 = bitcast %struct.point941* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point941* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point942* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point942* %0 to i8* + %6 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point943* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point943* %0 to i8* + %6 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point944* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point944* %0 to i8* + %6 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point945* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point945* %0 to i8* + %6 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo946([2 x i64] %0) #0 { + %2 = alloca %struct.point946, align 4 + %3 = alloca %struct.point946, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point946* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point946* %2 to i8* + %9 = bitcast %struct.point946* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point946* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo947([2 x i64] %0) #0 { + %2 = alloca %struct.point947, align 4 + %3 = alloca %struct.point947, align 4 + %4 = bitcast %struct.point947* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point947* %2 to i8* + %6 = bitcast %struct.point947* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point947* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo948([2 x i64] %0) #0 { + %2 = alloca %struct.point948, align 4 + %3 = alloca %struct.point948, align 4 + %4 = bitcast %struct.point948* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point948* %2 to i8* + %6 = bitcast %struct.point948* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point948* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo949([2 x i64] %0) #0 { + %2 = alloca %struct.point949, align 4 + %3 = alloca %struct.point949, align 4 + %4 = bitcast %struct.point949* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point949* %2 to i8* + %6 = bitcast %struct.point949* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point949* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point950* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point950* %0 to i8* + %6 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point951* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point951* %0 to i8* + %6 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo952([2 x i64] %0) #0 { + %2 = alloca %struct.point952, align 4 + %3 = alloca %struct.point952, align 4 + %4 = bitcast %struct.point952* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point952* %2 to i8* + %6 = bitcast %struct.point952* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point952* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo953([2 x i64] %0) #0 { + %2 = alloca %struct.point953, align 4 + %3 = alloca %struct.point953, align 4 + %4 = bitcast %struct.point953* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point953* %2 to i8* + %6 = bitcast %struct.point953* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point953* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo954([2 x i64] %0) #0 { + %2 = alloca %struct.point954, align 4 + %3 = alloca %struct.point954, align 4 + %4 = bitcast %struct.point954* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point954* %2 to i8* + %6 = bitcast %struct.point954* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point954* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point955* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point955* %0 to i8* + %6 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point956* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point956* %0 to i8* + %6 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo957([2 x i64] %0) #0 { + %2 = alloca %struct.point957, align 4 + %3 = alloca %struct.point957, align 4 + %4 = bitcast %struct.point957* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point957* %2 to i8* + %6 = bitcast %struct.point957* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point957* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point958* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point958* %0 to i8* + %6 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point959* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point959* %0 to i8* + %6 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point960* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point960* %0 to i8* + %6 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point961* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point961* %0 to i8* + %6 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo962([2 x i64] %0) #0 { + %2 = alloca %struct.point962, align 4 + %3 = alloca %struct.point962, align 4 + %4 = bitcast %struct.point962* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point962* %2 to i8* + %6 = bitcast %struct.point962* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point962* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point963* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point963* %0 to i8* + %6 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point964* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point964* %0 to i8* + %6 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point965* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point965* %0 to i8* + %6 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point966* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point966* %0 to i8* + %6 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo967([2 x i64] %0) #0 { + %2 = alloca %struct.point967, align 4 + %3 = alloca %struct.point967, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point967* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point967* %2 to i8* + %9 = bitcast %struct.point967* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point967* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo968([2 x i64] %0) #0 { + %2 = alloca %struct.point968, align 4 + %3 = alloca %struct.point968, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point968* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point968* %2 to i8* + %9 = bitcast %struct.point968* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point968* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo969([2 x i64] %0) #0 { + %2 = alloca %struct.point969, align 4 + %3 = alloca %struct.point969, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point969* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point969* %2 to i8* + %9 = bitcast %struct.point969* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point969* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo970([2 x i64] %0) #0 { + %2 = alloca %struct.point970, align 4 + %3 = alloca %struct.point970, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point970* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point970* %2 to i8* + %9 = bitcast %struct.point970* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point970* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo971([2 x i64] %0) #0 { + %2 = alloca %struct.point971, align 4 + %3 = alloca %struct.point971, align 4 + %4 = bitcast %struct.point971* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point971* %2 to i8* + %6 = bitcast %struct.point971* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point971* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo972([2 x i64] %0) #0 { + %2 = alloca %struct.point972, align 4 + %3 = alloca %struct.point972, align 4 + %4 = bitcast %struct.point972* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point972* %2 to i8* + %6 = bitcast %struct.point972* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point972* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo973([2 x i64] %0) #0 { + %2 = alloca %struct.point973, align 4 + %3 = alloca %struct.point973, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point973* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point973* %2 to i8* + %9 = bitcast %struct.point973* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point973* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo974([2 x i64] %0) #0 { + %2 = alloca %struct.point974, align 4 + %3 = alloca %struct.point974, align 4 + %4 = bitcast %struct.point974* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point974* %2 to i8* + %6 = bitcast %struct.point974* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point974* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo975([2 x i64] %0) #0 { + %2 = alloca %struct.point975, align 4 + %3 = alloca %struct.point975, align 4 + %4 = bitcast %struct.point975* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point975* %2 to i8* + %6 = bitcast %struct.point975* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point975* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo976([2 x i64] %0) #0 { + %2 = alloca %struct.point976, align 4 + %3 = alloca %struct.point976, align 4 + %4 = bitcast %struct.point976* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point976* %2 to i8* + %6 = bitcast %struct.point976* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point976* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo977([2 x i64] %0) #0 { + %2 = alloca %struct.point977, align 4 + %3 = alloca %struct.point977, align 4 + %4 = bitcast %struct.point977* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point977* %2 to i8* + %6 = bitcast %struct.point977* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point977* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo978([2 x i64] %0) #0 { + %2 = alloca %struct.point978, align 4 + %3 = alloca %struct.point978, align 4 + %4 = bitcast %struct.point978* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point978* %2 to i8* + %6 = bitcast %struct.point978* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point978* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point979* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point979* %0 to i8* + %6 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point980* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point980* %0 to i8* + %6 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point981* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point981* %0 to i8* + %6 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point982* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point982* %0 to i8* + %6 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo983([2 x i64] %0) #0 { + %2 = alloca %struct.point983, align 4 + %3 = alloca %struct.point983, align 4 + %4 = bitcast %struct.point983* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point983* %2 to i8* + %6 = bitcast %struct.point983* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point983* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point984* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point984* %0 to i8* + %6 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point985* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point985* %0 to i8* + %6 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point986* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point986* %0 to i8* + %6 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point987* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point987* %0 to i8* + %6 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo988([2 x i64] %0) #0 { + %2 = alloca %struct.point988, align 4 + %3 = alloca %struct.point988, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point988* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point988* %2 to i8* + %9 = bitcast %struct.point988* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point988* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo989([2 x i64] %0) #0 { + %2 = alloca %struct.point989, align 4 + %3 = alloca %struct.point989, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point989* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point989* %2 to i8* + %9 = bitcast %struct.point989* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point989* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo990([2 x i64] %0) #0 { + %2 = alloca %struct.point990, align 4 + %3 = alloca %struct.point990, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point990* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point990* %2 to i8* + %9 = bitcast %struct.point990* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point990* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo991([2 x i64] %0) #0 { + %2 = alloca %struct.point991, align 4 + %3 = alloca %struct.point991, align 4 + %4 = bitcast %struct.point991* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point991* %2 to i8* + %6 = bitcast %struct.point991* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point991* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo992([2 x i64] %0) #0 { + %2 = alloca %struct.point992, align 4 + %3 = alloca %struct.point992, align 4 + %4 = bitcast %struct.point992* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point992* %2 to i8* + %6 = bitcast %struct.point992* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point992* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo993([2 x i64] %0) #0 { + %2 = alloca %struct.point993, align 4 + %3 = alloca %struct.point993, align 4 + %4 = bitcast %struct.point993* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point993* %2 to i8* + %6 = bitcast %struct.point993* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point993* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo994([2 x i64] %0) #0 { + %2 = alloca %struct.point994, align 4 + %3 = alloca %struct.point994, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point994* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point994* %2 to i8* + %9 = bitcast %struct.point994* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point994* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo995([2 x i64] %0) #0 { + %2 = alloca %struct.point995, align 4 + %3 = alloca %struct.point995, align 4 + %4 = bitcast %struct.point995* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point995* %2 to i8* + %6 = bitcast %struct.point995* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point995* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo996([2 x i64] %0) #0 { + %2 = alloca %struct.point996, align 4 + %3 = alloca %struct.point996, align 4 + %4 = bitcast %struct.point996* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point996* %2 to i8* + %6 = bitcast %struct.point996* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point996* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo997([2 x i64] %0) #0 { + %2 = alloca %struct.point997, align 4 + %3 = alloca %struct.point997, align 4 + %4 = bitcast %struct.point997* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point997* %2 to i8* + %6 = bitcast %struct.point997* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point997* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo998([2 x i64] %0) #0 { + %2 = alloca %struct.point998, align 4 + %3 = alloca %struct.point998, align 4 + %4 = bitcast %struct.point998* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point998* %2 to i8* + %6 = bitcast %struct.point998* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point998* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo999([2 x i64] %0) #0 { + %2 = alloca %struct.point999, align 4 + %3 = alloca %struct.point999, align 4 + %4 = bitcast %struct.point999* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point999* %2 to i8* + %6 = bitcast %struct.point999* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point999* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1000* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1000* %0 to i8* + %6 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1001* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1001* %0 to i8* + %6 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1002* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1002* %0 to i8* + %6 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1003* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1003* %0 to i8* + %6 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1004([2 x i64] %0) #0 { + %2 = alloca %struct.point1004, align 4 + %3 = alloca %struct.point1004, align 4 + %4 = bitcast %struct.point1004* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1004* %2 to i8* + %6 = bitcast %struct.point1004* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1004* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1005* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1005* %0 to i8* + %6 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1006* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1006* %0 to i8* + %6 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1007* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1007* %0 to i8* + %6 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1008* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1008* %0 to i8* + %6 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1009([2 x i64] %0) #0 { + %2 = alloca %struct.point1009, align 4 + %3 = alloca %struct.point1009, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1009* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1009* %2 to i8* + %9 = bitcast %struct.point1009* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1009* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1010([2 x i64] %0) #0 { + %2 = alloca %struct.point1010, align 4 + %3 = alloca %struct.point1010, align 4 + %4 = bitcast %struct.point1010* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1010* %2 to i8* + %6 = bitcast %struct.point1010* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1010* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1011([2 x i64] %0) #0 { + %2 = alloca %struct.point1011, align 4 + %3 = alloca %struct.point1011, align 4 + %4 = bitcast %struct.point1011* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1011* %2 to i8* + %6 = bitcast %struct.point1011* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1011* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1012([2 x i64] %0) #0 { + %2 = alloca %struct.point1012, align 4 + %3 = alloca %struct.point1012, align 4 + %4 = bitcast %struct.point1012* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1012* %2 to i8* + %6 = bitcast %struct.point1012* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1012* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1013* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1013* %0 to i8* + %6 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1014* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1014* %0 to i8* + %6 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1015([2 x i64] %0) #0 { + %2 = alloca %struct.point1015, align 4 + %3 = alloca %struct.point1015, align 4 + %4 = bitcast %struct.point1015* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1015* %2 to i8* + %6 = bitcast %struct.point1015* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1015* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1016([2 x i64] %0) #0 { + %2 = alloca %struct.point1016, align 4 + %3 = alloca %struct.point1016, align 4 + %4 = bitcast %struct.point1016* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1016* %2 to i8* + %6 = bitcast %struct.point1016* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1016* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1017([2 x i64] %0) #0 { + %2 = alloca %struct.point1017, align 4 + %3 = alloca %struct.point1017, align 4 + %4 = bitcast %struct.point1017* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1017* %2 to i8* + %6 = bitcast %struct.point1017* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1017* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1018* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1018* %0 to i8* + %6 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1019* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1019* %0 to i8* + %6 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1020([2 x i64] %0) #0 { + %2 = alloca %struct.point1020, align 4 + %3 = alloca %struct.point1020, align 4 + %4 = bitcast %struct.point1020* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1020* %2 to i8* + %6 = bitcast %struct.point1020* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1020* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1021* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1021* %0 to i8* + %6 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1022* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1022* %0 to i8* + %6 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1023* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1023* %0 to i8* + %6 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1024* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1024* %0 to i8* + %6 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1025([2 x i64] %0) #0 { + %2 = alloca %struct.point1025, align 4 + %3 = alloca %struct.point1025, align 4 + %4 = bitcast %struct.point1025* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1025* %2 to i8* + %6 = bitcast %struct.point1025* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1025* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1026* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1026* %0 to i8* + %6 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1027* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1027* %0 to i8* + %6 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1028* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1028* %0 to i8* + %6 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1029* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1029* %0 to i8* + %6 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1030([2 x i64] %0) #0 { + %2 = alloca %struct.point1030, align 4 + %3 = alloca %struct.point1030, align 4 + %4 = alloca [2 x i64], align 8 + %5 = alloca [2 x i64], align 8 + store [2 x i64] %0, [2 x i64]* %4, align 8 + %6 = bitcast %struct.point1030* %3 to i8* + %7 = bitcast [2 x i64]* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 8 %7, i64 12, i1 false) + %8 = bitcast %struct.point1030* %2 to i8* + %9 = bitcast %struct.point1030* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %8, i8* align 4 %9, i64 12, i1 false) + %10 = bitcast [2 x i64]* %5 to i8* + %11 = bitcast %struct.point1030* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %10, i8* align 4 %11, i64 12, i1 false) + %12 = load [2 x i64], [2 x i64]* %5, align 8 + ret [2 x i64] %12 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1031([2 x i64] %0) #0 { + %2 = alloca %struct.point1031, align 4 + %3 = alloca %struct.point1031, align 4 + %4 = bitcast %struct.point1031* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1031* %2 to i8* + %6 = bitcast %struct.point1031* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1031* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1032([2 x i64] %0) #0 { + %2 = alloca %struct.point1032, align 4 + %3 = alloca %struct.point1032, align 4 + %4 = bitcast %struct.point1032* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1032* %2 to i8* + %6 = bitcast %struct.point1032* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1032* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1033([2 x i64] %0) #0 { + %2 = alloca %struct.point1033, align 4 + %3 = alloca %struct.point1033, align 4 + %4 = bitcast %struct.point1033* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1033* %2 to i8* + %6 = bitcast %struct.point1033* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1033* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1034* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1034* %0 to i8* + %6 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1035* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1035* %0 to i8* + %6 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1036([2 x i64] %0) #0 { + %2 = alloca %struct.point1036, align 4 + %3 = alloca %struct.point1036, align 4 + %4 = bitcast %struct.point1036* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1036* %2 to i8* + %6 = bitcast %struct.point1036* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1036* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1037([2 x i64] %0) #0 { + %2 = alloca %struct.point1037, align 4 + %3 = alloca %struct.point1037, align 4 + %4 = bitcast %struct.point1037* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1037* %2 to i8* + %6 = bitcast %struct.point1037* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1037* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1038([2 x i64] %0) #0 { + %2 = alloca %struct.point1038, align 4 + %3 = alloca %struct.point1038, align 4 + %4 = bitcast %struct.point1038* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1038* %2 to i8* + %6 = bitcast %struct.point1038* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1038* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1039* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1039* %0 to i8* + %6 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1040* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1040* %0 to i8* + %6 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1041([2 x i64] %0) #0 { + %2 = alloca %struct.point1041, align 4 + %3 = alloca %struct.point1041, align 4 + %4 = bitcast %struct.point1041* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1041* %2 to i8* + %6 = bitcast %struct.point1041* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1041* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1042* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1042* %0 to i8* + %6 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1043* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1043* %0 to i8* + %6 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1044* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1044* %0 to i8* + %6 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1045* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1045* %0 to i8* + %6 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo1046([2 x i64] %0) #0 { + %2 = alloca %struct.point1046, align 4 + %3 = alloca %struct.point1046, align 4 + %4 = bitcast %struct.point1046* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 4 + %5 = bitcast %struct.point1046* %2 to i8* + %6 = bitcast %struct.point1046* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 16, i1 false) + %7 = bitcast %struct.point1046* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 4 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1047* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1047* %0 to i8* + %6 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1048* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1048* %0 to i8* + %6 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1049* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1049* %0 to i8* + %6 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point1050* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point1050* %0 to i8* + %6 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %5, i8* align 4 %6, i64 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/riscv64/struct_uintptr.ll b/internal/cabi/_testdata/arch/riscv64/struct_uintptr.ll new file mode 100644 index 00000000..692bf23b --- /dev/null +++ b/internal/cabi/_testdata/arch/riscv64/struct_uintptr.ll @@ -0,0 +1,268 @@ +; ModuleID = '../../wrap/struct_uintptr.c' +source_filename = "../../wrap/struct_uintptr.c" +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n64-S128" +target triple = "riscv64-unknown-unknown-elf" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define dso_local i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %5 = inttoptr i64 %0 to i8* + store i8* %5, i8** %4, align 8 + %6 = bitcast %struct.point1* %2 to i8* + %7 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 8 %7, i64 8, i1 false) + %8 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %9 = load i8*, i8** %8, align 8 + %10 = ptrtoint i8* %9 to i64 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i64] @demo2([2 x i64] %0) #0 { + %2 = alloca %struct.point2, align 8 + %3 = alloca %struct.point2, align 8 + %4 = bitcast %struct.point2* %3 to [2 x i64]* + store [2 x i64] %0, [2 x i64]* %4, align 8 + %5 = bitcast %struct.point2* %2 to i8* + %6 = bitcast %struct.point2* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 16, i1 false) + %7 = bitcast %struct.point2* %2 to [2 x i64]* + %8 = load [2 x i64], [2 x i64]* %7, align 8 + ret [2 x i64] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point3* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point3* %0 to i8* + %6 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point4* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point4* %0 to i8* + %6 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point5* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point5* %0 to i8* + %6 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point6* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point6* %0 to i8* + %6 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point7* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point7* %0 to i8* + %6 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point8* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point8* %0 to i8* + %6 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point9* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point9* %0 to i8* + %6 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point10* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point10* %0 to i8* + %6 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point11* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point11* %0 to i8* + %6 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point12* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point12* %0 to i8* + %6 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point13* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point13* %0 to i8* + %6 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point14* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point14* %0 to i8* + %6 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point15* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point15* %0 to i8* + %6 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point16* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point16* %0 to i8* + %6 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point17* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point17* %0 to i8* + %6 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point18* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point18* %0 to i8* + %6 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point19* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point19* %0 to i8* + %6 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = bitcast %struct.point20* %0 to i8* + store i8* %4, i8** %3, align 8 + %5 = bitcast %struct.point20* %0 to i8* + %6 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %5, i8* align 8 %6, i64 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+64bit,+a,+c,+m,+relax,-save-restore" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3} +!llvm.ident = !{!4} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"lp64"} +!2 = !{i32 7, !"frame-pointer", i32 2} +!3 = !{i32 1, !"SmallDataLimit", i32 8} +!4 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_float32.ll b/internal/cabi/_testdata/arch/wasm32/array_float32.ll new file mode 100644 index 00000000..d61a6d6d --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_float32.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x float] } +%struct.array2 = type { [2 x float] } +%struct.array3 = type { [3 x float] } +%struct.array4 = type { [4 x float] } +%struct.array5 = type { [5 x float] } +%struct.array6 = type { [6 x float] } +%struct.array7 = type { [7 x float] } +%struct.array8 = type { [8 x float] } +%struct.array9 = type { [9 x float] } +%struct.array10 = type { [10 x float] } +%struct.array11 = type { [11 x float] } +%struct.array12 = type { [12 x float] } +%struct.array13 = type { [13 x float] } +%struct.array14 = type { [14 x float] } +%struct.array15 = type { [15 x float] } +%struct.array16 = type { [16 x float] } +%struct.array17 = type { [17 x float] } +%struct.array18 = type { [18 x float] } +%struct.array19 = type { [19 x float] } +%struct.array20 = type { [20 x float] } + +; Function Attrs: noinline nounwind optnone +define hidden float @demo1(float %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x float]* %4 to float* + store float %0, float* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x float]* %8 to float* + %10 = load float, float* %9, align 4 + ret float %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_float64.ll b/internal/cabi/_testdata/arch/wasm32/array_float64.ll new file mode 100644 index 00000000..cb95f083 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_float64.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x double] } +%struct.array2 = type { [2 x double] } +%struct.array3 = type { [3 x double] } +%struct.array4 = type { [4 x double] } +%struct.array5 = type { [5 x double] } +%struct.array6 = type { [6 x double] } +%struct.array7 = type { [7 x double] } +%struct.array8 = type { [8 x double] } +%struct.array9 = type { [9 x double] } +%struct.array10 = type { [10 x double] } +%struct.array11 = type { [11 x double] } +%struct.array12 = type { [12 x double] } +%struct.array13 = type { [13 x double] } +%struct.array14 = type { [14 x double] } +%struct.array15 = type { [15 x double] } +%struct.array16 = type { [16 x double] } +%struct.array17 = type { [17 x double] } +%struct.array18 = type { [18 x double] } +%struct.array19 = type { [19 x double] } +%struct.array20 = type { [20 x double] } + +; Function Attrs: noinline nounwind optnone +define hidden double @demo1(double %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x double]* %4 to double* + store double %0, double* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x double]* %8 to double* + %10 = load double, double* %9, align 8 + ret double %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, %struct.array2* noundef byval(%struct.array2) align 8 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef byval(%struct.array3) align 8 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef byval(%struct.array4) align 8 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_int16.ll b/internal/cabi/_testdata/arch/wasm32/array_int16.ll new file mode 100644 index 00000000..fe54b37f --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_int16.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x i16] } +%struct.array2 = type { [2 x i16] } +%struct.array3 = type { [3 x i16] } +%struct.array4 = type { [4 x i16] } +%struct.array5 = type { [5 x i16] } +%struct.array6 = type { [6 x i16] } +%struct.array7 = type { [7 x i16] } +%struct.array8 = type { [8 x i16] } +%struct.array9 = type { [9 x i16] } +%struct.array10 = type { [10 x i16] } +%struct.array11 = type { [11 x i16] } +%struct.array12 = type { [12 x i16] } +%struct.array13 = type { [13 x i16] } +%struct.array14 = type { [14 x i16] } +%struct.array15 = type { [15 x i16] } +%struct.array16 = type { [16 x i16] } +%struct.array17 = type { [17 x i16] } +%struct.array18 = type { [18 x i16] } +%struct.array19 = type { [19 x i16] } +%struct.array20 = type { [20 x i16] } + +; Function Attrs: noinline nounwind optnone +define hidden i16 @demo1(i16 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i16]* %4 to i16* + store i16 %0, i16* %5, align 2 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %6, i8* align 2 %7, i32 2, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i16]* %8 to i16* + %10 = load i16, i16* %9, align 2 + ret i16 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 2 %0, %struct.array2* noundef byval(%struct.array2) align 2 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 2 %0, %struct.array3* noundef byval(%struct.array3) align 2 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 2 %0, %struct.array4* noundef byval(%struct.array4) align 2 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 2 %0, %struct.array5* noundef byval(%struct.array5) align 2 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 2 %0, %struct.array6* noundef byval(%struct.array6) align 2 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 2 %0, %struct.array7* noundef byval(%struct.array7) align 2 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 2 %0, %struct.array8* noundef byval(%struct.array8) align 2 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 2 %0, %struct.array9* noundef byval(%struct.array9) align 2 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 2 %0, %struct.array10* noundef byval(%struct.array10) align 2 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 2 %0, %struct.array11* noundef byval(%struct.array11) align 2 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 2 %0, %struct.array12* noundef byval(%struct.array12) align 2 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 2 %0, %struct.array13* noundef byval(%struct.array13) align 2 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 2 %0, %struct.array14* noundef byval(%struct.array14) align 2 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 2 %0, %struct.array15* noundef byval(%struct.array15) align 2 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 2 %0, %struct.array16* noundef byval(%struct.array16) align 2 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 2 %0, %struct.array17* noundef byval(%struct.array17) align 2 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 2 %0, %struct.array18* noundef byval(%struct.array18) align 2 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 2 %0, %struct.array19* noundef byval(%struct.array19) align 2 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 2 %0, %struct.array20* noundef byval(%struct.array20) align 2 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_int32.ll b/internal/cabi/_testdata/arch/wasm32/array_int32.ll new file mode 100644 index 00000000..fa972ce0 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_int32.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x i32] } +%struct.array2 = type { [2 x i32] } +%struct.array3 = type { [3 x i32] } +%struct.array4 = type { [4 x i32] } +%struct.array5 = type { [5 x i32] } +%struct.array6 = type { [6 x i32] } +%struct.array7 = type { [7 x i32] } +%struct.array8 = type { [8 x i32] } +%struct.array9 = type { [9 x i32] } +%struct.array10 = type { [10 x i32] } +%struct.array11 = type { [11 x i32] } +%struct.array12 = type { [12 x i32] } +%struct.array13 = type { [13 x i32] } +%struct.array14 = type { [14 x i32] } +%struct.array15 = type { [15 x i32] } +%struct.array16 = type { [16 x i32] } +%struct.array17 = type { [17 x i32] } +%struct.array18 = type { [18 x i32] } +%struct.array19 = type { [19 x i32] } +%struct.array20 = type { [20 x i32] } + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i32]* %4 to i32* + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i32]* %8 to i32* + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_int64.ll b/internal/cabi/_testdata/arch/wasm32/array_int64.ll new file mode 100644 index 00000000..0f29a3de --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_int64.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x i64] } +%struct.array2 = type { [2 x i64] } +%struct.array3 = type { [3 x i64] } +%struct.array4 = type { [4 x i64] } +%struct.array5 = type { [5 x i64] } +%struct.array6 = type { [6 x i64] } +%struct.array7 = type { [7 x i64] } +%struct.array8 = type { [8 x i64] } +%struct.array9 = type { [9 x i64] } +%struct.array10 = type { [10 x i64] } +%struct.array11 = type { [11 x i64] } +%struct.array12 = type { [12 x i64] } +%struct.array13 = type { [13 x i64] } +%struct.array14 = type { [14 x i64] } +%struct.array15 = type { [15 x i64] } +%struct.array16 = type { [16 x i64] } +%struct.array17 = type { [17 x i64] } +%struct.array18 = type { [18 x i64] } +%struct.array19 = type { [19 x i64] } +%struct.array20 = type { [20 x i64] } + +; Function Attrs: noinline nounwind optnone +define hidden i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.array1, align 8 + %3 = alloca %struct.array1, align 8 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i64]* %4 to i64* + store i64 %0, i64* %5, align 8 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %6, i8* align 8 %7, i32 8, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i64]* %8 to i64* + %10 = load i64, i64* %9, align 8 + ret i64 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 8 %0, %struct.array2* noundef byval(%struct.array2) align 8 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 8 %0, %struct.array3* noundef byval(%struct.array3) align 8 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 8 %0, %struct.array4* noundef byval(%struct.array4) align 8 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 8 %0, %struct.array5* noundef byval(%struct.array5) align 8 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 8 %0, %struct.array6* noundef byval(%struct.array6) align 8 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 8 %0, %struct.array7* noundef byval(%struct.array7) align 8 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 8 %0, %struct.array8* noundef byval(%struct.array8) align 8 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 8 %0, %struct.array9* noundef byval(%struct.array9) align 8 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 8 %0, %struct.array10* noundef byval(%struct.array10) align 8 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 8 %0, %struct.array11* noundef byval(%struct.array11) align 8 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 8 %0, %struct.array12* noundef byval(%struct.array12) align 8 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 8 %0, %struct.array13* noundef byval(%struct.array13) align 8 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 8 %0, %struct.array14* noundef byval(%struct.array14) align 8 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 8 %0, %struct.array15* noundef byval(%struct.array15) align 8 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 8 %0, %struct.array16* noundef byval(%struct.array16) align 8 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 8 %0, %struct.array17* noundef byval(%struct.array17) align 8 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 8 %0, %struct.array18* noundef byval(%struct.array18) align 8 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 8 %0, %struct.array19* noundef byval(%struct.array19) align 8 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 8 %0, %struct.array20* noundef byval(%struct.array20) align 8 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_int8.ll b/internal/cabi/_testdata/arch/wasm32/array_int8.ll new file mode 100644 index 00000000..061f3f92 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_int8.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x i8] } +%struct.array2 = type { [2 x i8] } +%struct.array3 = type { [3 x i8] } +%struct.array4 = type { [4 x i8] } +%struct.array5 = type { [5 x i8] } +%struct.array6 = type { [6 x i8] } +%struct.array7 = type { [7 x i8] } +%struct.array8 = type { [8 x i8] } +%struct.array9 = type { [9 x i8] } +%struct.array10 = type { [10 x i8] } +%struct.array11 = type { [11 x i8] } +%struct.array12 = type { [12 x i8] } +%struct.array13 = type { [13 x i8] } +%struct.array14 = type { [14 x i8] } +%struct.array15 = type { [15 x i8] } +%struct.array16 = type { [16 x i8] } +%struct.array17 = type { [17 x i8] } +%struct.array18 = type { [18 x i8] } +%struct.array19 = type { [19 x i8] } +%struct.array20 = type { [20 x i8] } + +; Function Attrs: noinline nounwind optnone +define hidden i8 @demo1(i8 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8]* %4 to i8* + store i8 %0, i8* %5, align 1 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %6, i8* align 1 %7, i32 1, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8]* %8 to i8* + %10 = load i8, i8* %9, align 1 + ret i8 %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 1 %0, %struct.array2* noundef byval(%struct.array2) align 1 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 2, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 1 %0, %struct.array3* noundef byval(%struct.array3) align 1 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 3, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 1 %0, %struct.array4* noundef byval(%struct.array4) align 1 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 1 %0, %struct.array5* noundef byval(%struct.array5) align 1 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 1 %0, %struct.array6* noundef byval(%struct.array6) align 1 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 1 %0, %struct.array7* noundef byval(%struct.array7) align 1 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 7, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 1 %0, %struct.array8* noundef byval(%struct.array8) align 1 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 1 %0, %struct.array9* noundef byval(%struct.array9) align 1 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 1 %0, %struct.array10* noundef byval(%struct.array10) align 1 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 1 %0, %struct.array11* noundef byval(%struct.array11) align 1 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 1 %0, %struct.array12* noundef byval(%struct.array12) align 1 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 1 %0, %struct.array13* noundef byval(%struct.array13) align 1 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 1 %0, %struct.array14* noundef byval(%struct.array14) align 1 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 1 %0, %struct.array15* noundef byval(%struct.array15) align 1 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 1 %0, %struct.array16* noundef byval(%struct.array16) align 1 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 1 %0, %struct.array17* noundef byval(%struct.array17) align 1 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 1 %0, %struct.array18* noundef byval(%struct.array18) align 1 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 1 %0, %struct.array19* noundef byval(%struct.array19) align 1 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 1 %0, %struct.array20* noundef byval(%struct.array20) align 1 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_pointer.ll b/internal/cabi/_testdata/arch/wasm32/array_pointer.ll new file mode 100644 index 00000000..5e76b1a2 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_pointer.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define hidden i8* @demo1(i8* %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i8** + store i8* %0, i8** %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i8** + %10 = load i8*, i8** %9, align 4 + ret i8* %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/array_uintptr.ll b/internal/cabi/_testdata/arch/wasm32/array_uintptr.ll new file mode 100644 index 00000000..47dc59db --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/array_uintptr.ll @@ -0,0 +1,205 @@ +; ModuleID = '../../wrap/array_uintptr.c' +source_filename = "../../wrap/array_uintptr.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array1 = type { [1 x i8*] } +%struct.array2 = type { [2 x i8*] } +%struct.array3 = type { [3 x i8*] } +%struct.array4 = type { [4 x i8*] } +%struct.array5 = type { [5 x i8*] } +%struct.array6 = type { [6 x i8*] } +%struct.array7 = type { [7 x i8*] } +%struct.array8 = type { [8 x i8*] } +%struct.array9 = type { [9 x i8*] } +%struct.array10 = type { [10 x i8*] } +%struct.array11 = type { [11 x i8*] } +%struct.array12 = type { [12 x i8*] } +%struct.array13 = type { [13 x i8*] } +%struct.array14 = type { [14 x i8*] } +%struct.array15 = type { [15 x i8*] } +%struct.array16 = type { [16 x i8*] } +%struct.array17 = type { [17 x i8*] } +%struct.array18 = type { [18 x i8*] } +%struct.array19 = type { [19 x i8*] } +%struct.array20 = type { [20 x i8*] } + +; Function Attrs: noinline nounwind optnone +define hidden i8* @demo1(i8* %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, %struct.array1* %3, i32 0, i32 0 + %5 = bitcast [1 x i8*]* %4 to i8** + store i8* %0, i8** %5, align 4 + %6 = bitcast %struct.array1* %2 to i8* + %7 = bitcast %struct.array1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.array1, %struct.array1* %2, i32 0, i32 0 + %9 = bitcast [1 x i8*]* %8 to i8** + %10 = load i8*, i8** %9, align 4 + ret i8* %10 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array2* noalias sret(%struct.array2) align 4 %0, %struct.array2* noundef byval(%struct.array2) align 4 %1) #0 { + %3 = bitcast %struct.array2* %0 to i8* + %4 = bitcast %struct.array2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.array3* noalias sret(%struct.array3) align 4 %0, %struct.array3* noundef byval(%struct.array3) align 4 %1) #0 { + %3 = bitcast %struct.array3* %0 to i8* + %4 = bitcast %struct.array3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.array4* noalias sret(%struct.array4) align 4 %0, %struct.array4* noundef byval(%struct.array4) align 4 %1) #0 { + %3 = bitcast %struct.array4* %0 to i8* + %4 = bitcast %struct.array4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.array5* noalias sret(%struct.array5) align 4 %0, %struct.array5* noundef byval(%struct.array5) align 4 %1) #0 { + %3 = bitcast %struct.array5* %0 to i8* + %4 = bitcast %struct.array5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.array6* noalias sret(%struct.array6) align 4 %0, %struct.array6* noundef byval(%struct.array6) align 4 %1) #0 { + %3 = bitcast %struct.array6* %0 to i8* + %4 = bitcast %struct.array6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.array7* noalias sret(%struct.array7) align 4 %0, %struct.array7* noundef byval(%struct.array7) align 4 %1) #0 { + %3 = bitcast %struct.array7* %0 to i8* + %4 = bitcast %struct.array7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.array8* noalias sret(%struct.array8) align 4 %0, %struct.array8* noundef byval(%struct.array8) align 4 %1) #0 { + %3 = bitcast %struct.array8* %0 to i8* + %4 = bitcast %struct.array8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.array9* noalias sret(%struct.array9) align 4 %0, %struct.array9* noundef byval(%struct.array9) align 4 %1) #0 { + %3 = bitcast %struct.array9* %0 to i8* + %4 = bitcast %struct.array9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.array10* noalias sret(%struct.array10) align 4 %0, %struct.array10* noundef byval(%struct.array10) align 4 %1) #0 { + %3 = bitcast %struct.array10* %0 to i8* + %4 = bitcast %struct.array10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.array12* noalias sret(%struct.array12) align 4 %0, %struct.array12* noundef byval(%struct.array12) align 4 %1) #0 { + %3 = bitcast %struct.array12* %0 to i8* + %4 = bitcast %struct.array12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.array13* noalias sret(%struct.array13) align 4 %0, %struct.array13* noundef byval(%struct.array13) align 4 %1) #0 { + %3 = bitcast %struct.array13* %0 to i8* + %4 = bitcast %struct.array13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.array14* noalias sret(%struct.array14) align 4 %0, %struct.array14* noundef byval(%struct.array14) align 4 %1) #0 { + %3 = bitcast %struct.array14* %0 to i8* + %4 = bitcast %struct.array14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.array15* noalias sret(%struct.array15) align 4 %0, %struct.array15* noundef byval(%struct.array15) align 4 %1) #0 { + %3 = bitcast %struct.array15* %0 to i8* + %4 = bitcast %struct.array15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.array16* noalias sret(%struct.array16) align 4 %0, %struct.array16* noundef byval(%struct.array16) align 4 %1) #0 { + %3 = bitcast %struct.array16* %0 to i8* + %4 = bitcast %struct.array16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.array17* noalias sret(%struct.array17) align 4 %0, %struct.array17* noundef byval(%struct.array17) align 4 %1) #0 { + %3 = bitcast %struct.array17* %0 to i8* + %4 = bitcast %struct.array17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.array18* noalias sret(%struct.array18) align 4 %0, %struct.array18* noundef byval(%struct.array18) align 4 %1) #0 { + %3 = bitcast %struct.array18* %0 to i8* + %4 = bitcast %struct.array18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.array19* noalias sret(%struct.array19) align 4 %0, %struct.array19* noundef byval(%struct.array19) align 4 %1) #0 { + %3 = bitcast %struct.array19* %0 to i8* + %4 = bitcast %struct.array19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/basic.ll b/internal/cabi/_testdata/arch/wasm32/basic.ll new file mode 100644 index 00000000..cb1fa4ef --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/basic.ll @@ -0,0 +1,68 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +; Function Attrs: noinline nounwind optnone +define hidden signext i8 @basic_int8(i8 noundef signext %0) #0 { + %2 = alloca i8, align 1 + store i8 %0, i8* %2, align 1 + %3 = load i8, i8* %2, align 1 + ret i8 %3 +} + +; Function Attrs: noinline nounwind optnone +define hidden signext i16 @basic_int16(i16 noundef signext %0) #0 { + %2 = alloca i16, align 2 + store i16 %0, i16* %2, align 2 + %3 = load i16, i16* %2, align 2 + ret i16 %3 +} + +; Function Attrs: noinline nounwind optnone +define hidden i32 @basic_int32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + ret i32 %3 +} + +; Function Attrs: noinline nounwind optnone +define hidden i64 @basic_int64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + ret i64 %3 +} + +; Function Attrs: noinline nounwind optnone +define hidden float @basic_float32(float noundef %0) #0 { + %2 = alloca float, align 4 + store float %0, float* %2, align 4 + %3 = load float, float* %2, align 4 + ret float %3 +} + +; Function Attrs: noinline nounwind optnone +define hidden double @basic_float64(double noundef %0) #0 { + %2 = alloca double, align 8 + store double %0, double* %2, align 8 + %3 = load double, double* %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define hidden i8* @basic_uintptr(i8* noundef %0) #0 { + %2 = alloca i8*, align 4 + store i8* %0, i8** %2, align 4 + %3 = load i8*, i8** %2, align 4 + ret i8* %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/composite.ll b/internal/cabi/_testdata/arch/wasm32/composite.ll new file mode 100644 index 00000000..227eb95d --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/composite.ll @@ -0,0 +1,111 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.array10 = type { %struct.basearray1 } +%struct.basearray1 = type { [1 x i32] } +%struct.array11 = type { %struct.basearray1, i32 } +%struct.point10 = type { %struct.basepoint1 } +%struct.basepoint1 = type { i32 } +%struct.point11 = type { %struct.basepoint1, i32 } +%struct.array20 = type { %struct.basearray2 } +%struct.basearray2 = type { [2 x i32] } +%struct.array21 = type { %struct.basearray2, i32 } +%struct.point20 = type { %struct.basepoint2 } +%struct.basepoint2 = type { i32, i32 } +%struct.point21 = type { %struct.basepoint2, i32 } + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo_array10(i32 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, %struct.array10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %4, i32 0, i32 0 + %6 = bitcast [1 x i32]* %5 to i32* + store i32 %0, i32* %6, align 4 + %7 = bitcast %struct.array10* %2 to i8* + %8 = bitcast %struct.array10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %7, i8* align 4 %8, i32 4, i1 false) + %9 = getelementptr inbounds %struct.array10, %struct.array10* %2, i32 0, i32 0 + %10 = getelementptr inbounds %struct.basearray1, %struct.basearray1* %9, i32 0, i32 0 + %11 = bitcast [1 x i32]* %10 to i32* + %12 = load i32, i32* %11, align 4 + ret i32 %12 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo_array11(%struct.array11* noalias sret(%struct.array11) align 4 %0, %struct.array11* noundef byval(%struct.array11) align 4 %1) #0 { + %3 = bitcast %struct.array11* %0 to i8* + %4 = bitcast %struct.array11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo_point10(i32 %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + %4 = getelementptr inbounds %struct.point10, %struct.point10* %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %4, i32 0, i32 0 + store i32 %0, i32* %5, align 4 + %6 = bitcast %struct.point10* %2 to i8* + %7 = bitcast %struct.point10* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %6, i8* align 4 %7, i32 4, i1 false) + %8 = getelementptr inbounds %struct.point10, %struct.point10* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.basepoint1, %struct.basepoint1* %8, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + ret i32 %10 +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo_point11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo_array20(%struct.array20* noalias sret(%struct.array20) align 4 %0, %struct.array20* noundef byval(%struct.array20) align 4 %1) #0 { + %3 = bitcast %struct.array20* %0 to i8* + %4 = bitcast %struct.array20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo_array21(%struct.array21* noalias sret(%struct.array21) align 4 %0, %struct.array21* noundef byval(%struct.array21) align 4 %1) #0 { + %3 = bitcast %struct.array21* %0 to i8* + %4 = bitcast %struct.array21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo_point20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo_point21(%struct.point21* noalias sret(%struct.point21) align 4 %0, %struct.point21* noundef byval(%struct.point21) align 4 %1) #0 { + %3 = bitcast %struct.point21* %0 to i8* + %4 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/demo.ll b/internal/cabi/_testdata/arch/wasm32/demo.ll new file mode 100644 index 00000000..f44eaee3 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/demo.ll @@ -0,0 +1,692 @@ +; ModuleID = '../../wrap/demo.c' +source_filename = "../../wrap/demo.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point = type { i32, i32 } +%struct.point1 = type { i32, i32, i32 } +%struct.point64 = type { i64, i64 } +%struct.struct32 = type { i32 } +%struct.point2 = type { i8, i32, i32 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i32 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i32 } +%struct.point7 = type { i8, i8, i8, i8, i8, i32, i8 } +%struct.data1 = type { i8, i64 } +%struct.data2 = type { i32, i64 } +%struct.data3 = type { i64, i8 } +%struct.fdata1 = type { float } +%struct.ddata1 = type { double } +%struct.ddata2 = type { double, double } +%struct.ddata3 = type { double, double, double } +%struct.fdata2i = type { float, i32 } +%struct.fdata2 = type { float, float } +%struct.fdata3 = type { float, float, float } +%struct.fdata4 = type { float, float, float, float } +%struct.fdata5 = type { float, float, float, float, float } +%struct.fdata2id = type { i8, i8, double } +%struct.fdata7if = type { [7 x i8], float } +%struct.fdata4if = type { float, i8, float, float } +%struct.array = type { [8 x i32] } + +@.str = private unnamed_addr constant [20 x i8] c"point64: %lld %lld\0A\00", align 1 +@.str.1 = private unnamed_addr constant [14 x i8] c"struct32: %d\0A\00", align 1 +@.str.2 = private unnamed_addr constant [14 x i8] c"point: %d %d\0A\00", align 1 +@.str.3 = private unnamed_addr constant [18 x i8] c"point1: %d %d %d\0A\00", align 1 +@.str.4 = private unnamed_addr constant [18 x i8] c"point2: %d %d %d\0A\00", align 1 +@.str.5 = private unnamed_addr constant [18 x i8] c"point3: %d %d %d\0A\00", align 1 +@.str.6 = private unnamed_addr constant [21 x i8] c"point4: %d %d %d %d\0A\00", align 1 +@.str.7 = private unnamed_addr constant [24 x i8] c"point5: %d %d %d %d %d\0A\00", align 1 +@.str.8 = private unnamed_addr constant [27 x i8] c"point6: %d %d %d %d %d %d\0A\00", align 1 +@.str.9 = private unnamed_addr constant [30 x i8] c"point7: %d %d %d %d %d %d %d\0A\00", align 1 +@.str.10 = private unnamed_addr constant [16 x i8] c"data1: %d %lld\0A\00", align 1 +@.str.11 = private unnamed_addr constant [16 x i8] c"data2: %d %lld\0A\00", align 1 +@.str.12 = private unnamed_addr constant [16 x i8] c"data3: %lld %d\0A\00", align 1 +@.str.13 = private unnamed_addr constant [9 x i8] c"ff1: %f\0A\00", align 1 +@.str.14 = private unnamed_addr constant [9 x i8] c"dd1: %f\0A\00", align 1 +@.str.15 = private unnamed_addr constant [12 x i8] c"dd2: %f %f\0A\00", align 1 +@.str.16 = private unnamed_addr constant [15 x i8] c"dd3: %f %f %f\0A\00", align 1 +@.str.17 = private unnamed_addr constant [13 x i8] c"ff2i: %f %d\0A\00", align 1 +@.str.18 = private unnamed_addr constant [12 x i8] c"ff2: %f %f\0A\00", align 1 +@.str.19 = private unnamed_addr constant [15 x i8] c"ff3: %f %f %f\0A\00", align 1 +@.str.20 = private unnamed_addr constant [18 x i8] c"ff4: %f %f %f %f\0A\00", align 1 +@.str.21 = private unnamed_addr constant [21 x i8] c"ff5: %f %f %f %f %f\0A\00", align 1 +@.str.22 = private unnamed_addr constant [15 x i8] c"ff6: %d %d %f\0A\00", align 1 +@.str.23 = private unnamed_addr constant [17 x i8] c"ff7if: %d %d %f\0A\00", align 1 +@.str.24 = private unnamed_addr constant [20 x i8] c"ff4if: %f %d %f %f\0A\00", align 1 +@.str.25 = private unnamed_addr constant [16 x i8] c"demo: %d %d %d\0A\00", align 1 +@__const.callback.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.26 = private unnamed_addr constant [27 x i8] c"callback1 array: %d %d %d\0A\00", align 1 +@__const.callback1.pt = private unnamed_addr constant %struct.point { i32 1, i32 2 }, align 4 +@__const.callback1.pt1 = private unnamed_addr constant %struct.point1 { i32 1, i32 2, i32 3 }, align 4 +@.str.27 = private unnamed_addr constant [22 x i8] c"callback1 ret: %d,%d\0A\00", align 1 +@.str.28 = private unnamed_addr constant [28 x i8] c"mycallback array: %d %d %d\0A\00", align 1 +@.str.29 = private unnamed_addr constant [22 x i8] c"mycallback pt: %d %d\0A\00", align 1 +@.str.30 = private unnamed_addr constant [26 x i8] c"mycallback pt1: %d %d %d\0A\00", align 1 + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo32(i32 noundef %0) #0 { + %2 = alloca i32, align 4 + store i32 %0, i32* %2, align 4 + %3 = load i32, i32* %2, align 4 + %4 = add nsw i32 %3, 100 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define hidden i64 @demo64(i64 noundef %0) #0 { + %2 = alloca i64, align 8 + store i64 %0, i64* %2, align 8 + %3 = load i64, i64* %2, align 8 + %4 = add nsw i64 %3, 100 + ret i64 %4 +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt64(%struct.point64* noalias sret(%struct.point64) align 8 %0, %struct.point64* noundef byval(%struct.point64) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.point64, %struct.point64* %1, i32 0, i32 0 + %4 = load i64, i64* %3, align 8 + %5 = getelementptr inbounds %struct.point64, %struct.point64* %1, i32 0, i32 1 + %6 = load i64, i64* %5, align 8 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i32 0, i32 0), i64 noundef %4, i64 noundef %6) + %8 = bitcast %struct.point64* %0 to i8* + %9 = bitcast %struct.point64* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + ret void +} + +declare i32 @printf(i8* noundef, ...) #1 + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #2 + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo32s(i32 %0) #0 { + %2 = alloca %struct.struct32, align 4 + %3 = alloca %struct.struct32, align 4 + %4 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %5 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %6 = load i32, i32* %5, align 4 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i32 0, i32 0), i32 noundef %6) + %8 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %9 = getelementptr inbounds %struct.struct32, %struct.struct32* %3, i32 0, i32 0 + %10 = load i32, i32* %9, align 4 + %11 = add nsw i32 %10, 100 + store i32 %11, i32* %8, align 4 + %12 = getelementptr inbounds %struct.struct32, %struct.struct32* %2, i32 0, i32 0 + %13 = load i32, i32* %12, align 4 + ret i32 %13 +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt(%struct.point* noalias sret(%struct.point) align 4 %0, %struct.point* noundef byval(%struct.point) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.point, %struct.point* %1, i32 0, i32 0 + %4 = load i32, i32* %3, align 4 + %5 = getelementptr inbounds %struct.point, %struct.point* %1, i32 0, i32 1 + %6 = load i32, i32* %5, align 4 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i32 0, i32 0), i32 noundef %4, i32 noundef %6) + %8 = bitcast %struct.point* %0 to i8* + %9 = bitcast %struct.point* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %8, i8* align 4 %9, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt1(%struct.point1* noalias sret(%struct.point1) align 4 %0, %struct.point1* noundef byval(%struct.point1) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.point1, %struct.point1* %1, i32 0, i32 0 + %4 = load i32, i32* %3, align 4 + %5 = getelementptr inbounds %struct.point1, %struct.point1* %1, i32 0, i32 1 + %6 = load i32, i32* %5, align 4 + %7 = getelementptr inbounds %struct.point1, %struct.point1* %1, i32 0, i32 2 + %8 = load i32, i32* %7, align 4 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i32 0, i32 0), i32 noundef %4, i32 noundef %6, i32 noundef %8) + %10 = bitcast %struct.point1* %0 to i8* + %11 = bitcast %struct.point1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 4 %11, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt2(%struct.point2* noalias sret(%struct.point2) align 4 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.point2, %struct.point2* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 4 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.point2, %struct.point2* %1, i32 0, i32 1 + %7 = load i32, i32* %6, align 4 + %8 = getelementptr inbounds %struct.point2, %struct.point2* %1, i32 0, i32 2 + %9 = load i32, i32* %8, align 4 + %10 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i32 0, i32 0), i32 noundef %5, i32 noundef %7, i32 noundef %9) + %11 = bitcast %struct.point2* %0 to i8* + %12 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %11, i8* align 4 %12, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt3(%struct.point3* noalias sret(%struct.point3) align 1 %0, %struct.point3* noundef byval(%struct.point3) align 1 %1) #0 { + %3 = getelementptr inbounds %struct.point3, %struct.point3* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 1 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.point3, %struct.point3* %1, i32 0, i32 1 + %7 = load i8, i8* %6, align 1 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.point3, %struct.point3* %1, i32 0, i32 2 + %10 = load i8, i8* %9, align 1 + %11 = sext i8 %10 to i32 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.5, i32 0, i32 0), i32 noundef %5, i32 noundef %8, i32 noundef %11) + %13 = bitcast %struct.point3* %0 to i8* + %14 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %13, i8* align 1 %14, i32 3, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 4 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 1 + %7 = load i8, i8* %6, align 1 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 2 + %10 = load i8, i8* %9, align 2 + %11 = sext i8 %10 to i32 + %12 = getelementptr inbounds %struct.point4, %struct.point4* %1, i32 0, i32 3 + %13 = load i32, i32* %12, align 4 + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.6, i32 0, i32 0), i32 noundef %5, i32 noundef %8, i32 noundef %11, i32 noundef %13) + %15 = bitcast %struct.point4* %0 to i8* + %16 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %15, i8* align 4 %16, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt5(%struct.point5* noalias sret(%struct.point5) align 1 %0, %struct.point5* noundef byval(%struct.point5) align 1 %1) #0 { + %3 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 1 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 1 + %7 = load i8, i8* %6, align 1 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 2 + %10 = load i8, i8* %9, align 1 + %11 = sext i8 %10 to i32 + %12 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 3 + %13 = load i8, i8* %12, align 1 + %14 = sext i8 %13 to i32 + %15 = getelementptr inbounds %struct.point5, %struct.point5* %1, i32 0, i32 4 + %16 = load i8, i8* %15, align 1 + %17 = sext i8 %16 to i32 + %18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i32 0, i32 0), i32 noundef %5, i32 noundef %8, i32 noundef %11, i32 noundef %14, i32 noundef %17) + %19 = bitcast %struct.point5* %0 to i8* + %20 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %19, i8* align 1 %20, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 4 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 1 + %7 = load i8, i8* %6, align 1 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 2 + %10 = load i8, i8* %9, align 2 + %11 = sext i8 %10 to i32 + %12 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 3 + %13 = load i8, i8* %12, align 1 + %14 = sext i8 %13 to i32 + %15 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 4 + %16 = load i8, i8* %15, align 4 + %17 = sext i8 %16 to i32 + %18 = getelementptr inbounds %struct.point6, %struct.point6* %1, i32 0, i32 5 + %19 = load i32, i32* %18, align 4 + %20 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i32 0, i32 0), i32 noundef %5, i32 noundef %8, i32 noundef %11, i32 noundef %14, i32 noundef %17, i32 noundef %19) + %21 = bitcast %struct.point6* %0 to i8* + %22 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %21, i8* align 4 %22, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @pt7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 4 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 1 + %7 = load i8, i8* %6, align 1 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 2 + %10 = load i8, i8* %9, align 2 + %11 = sext i8 %10 to i32 + %12 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 3 + %13 = load i8, i8* %12, align 1 + %14 = sext i8 %13 to i32 + %15 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 4 + %16 = load i8, i8* %15, align 4 + %17 = sext i8 %16 to i32 + %18 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 5 + %19 = load i32, i32* %18, align 4 + %20 = getelementptr inbounds %struct.point7, %struct.point7* %1, i32 0, i32 6 + %21 = load i8, i8* %20, align 4 + %22 = sext i8 %21 to i32 + %23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.9, i32 0, i32 0), i32 noundef %5, i32 noundef %8, i32 noundef %11, i32 noundef %14, i32 noundef %17, i32 noundef %19, i32 noundef %22) + %24 = bitcast %struct.point7* %0 to i8* + %25 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %24, i8* align 4 %25, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @fn1(%struct.data1* noalias sret(%struct.data1) align 8 %0, %struct.data1* noundef byval(%struct.data1) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.data1, %struct.data1* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 8 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.data1, %struct.data1* %1, i32 0, i32 1 + %7 = load i64, i64* %6, align 8 + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i32 0, i32 0), i32 noundef %5, i64 noundef %7) + %9 = bitcast %struct.data1* %0 to i8* + %10 = bitcast %struct.data1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %9, i8* align 8 %10, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @fn2(%struct.data2* noalias sret(%struct.data2) align 8 %0, %struct.data2* noundef byval(%struct.data2) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.data2, %struct.data2* %1, i32 0, i32 0 + %4 = load i32, i32* %3, align 8 + %5 = getelementptr inbounds %struct.data2, %struct.data2* %1, i32 0, i32 1 + %6 = load i64, i64* %5, align 8 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i32 0, i32 0), i32 noundef %4, i64 noundef %6) + %8 = bitcast %struct.data2* %0 to i8* + %9 = bitcast %struct.data2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @fn3(%struct.data3* noalias sret(%struct.data3) align 8 %0, %struct.data3* noundef byval(%struct.data3) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.data3, %struct.data3* %1, i32 0, i32 0 + %4 = load i64, i64* %3, align 8 + %5 = getelementptr inbounds %struct.data3, %struct.data3* %1, i32 0, i32 1 + %6 = load i8, i8* %5, align 8 + %7 = sext i8 %6 to i32 + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i32 0, i32 0), i64 noundef %4, i32 noundef %7) + %9 = bitcast %struct.data3* %0 to i8* + %10 = bitcast %struct.data3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %9, i8* align 8 %10, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden float @ff1(float %0) #0 { + %2 = alloca %struct.fdata1, align 4 + %3 = alloca %struct.fdata1, align 4 + %4 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + store float %0, float* %4, align 4 + %5 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %3, i32 0, i32 0 + %6 = load float, float* %5, align 4 + %7 = fpext float %6 to double + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i32 0, i32 0), double noundef %7) + %9 = bitcast %struct.fdata1* %2 to i8* + %10 = bitcast %struct.fdata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 4, i1 false) + %11 = getelementptr inbounds %struct.fdata1, %struct.fdata1* %2, i32 0, i32 0 + %12 = load float, float* %11, align 4 + ret float %12 +} + +; Function Attrs: noinline nounwind optnone +define hidden double @dd1(double %0) #0 { + %2 = alloca %struct.ddata1, align 8 + %3 = alloca %struct.ddata1, align 8 + %4 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + store double %0, double* %4, align 8 + %5 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %3, i32 0, i32 0 + %6 = load double, double* %5, align 8 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([9 x i8], [9 x i8]* @.str.14, i32 0, i32 0), double noundef %6) + %8 = bitcast %struct.ddata1* %2 to i8* + %9 = bitcast %struct.ddata1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 8, i1 false) + %10 = getelementptr inbounds %struct.ddata1, %struct.ddata1* %2, i32 0, i32 0 + %11 = load double, double* %10, align 8 + ret double %11 +} + +; Function Attrs: noinline nounwind optnone +define hidden void @dd2(%struct.ddata2* noalias sret(%struct.ddata2) align 8 %0, %struct.ddata2* noundef byval(%struct.ddata2) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %1, i32 0, i32 0 + %4 = load double, double* %3, align 8 + %5 = getelementptr inbounds %struct.ddata2, %struct.ddata2* %1, i32 0, i32 1 + %6 = load double, double* %5, align 8 + %7 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i32 0, i32 0), double noundef %4, double noundef %6) + %8 = bitcast %struct.ddata2* %0 to i8* + %9 = bitcast %struct.ddata2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %8, i8* align 8 %9, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @dd3(%struct.ddata3* noalias sret(%struct.ddata3) align 8 %0, %struct.ddata3* noundef byval(%struct.ddata3) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 0 + %4 = load double, double* %3, align 8 + %5 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 1 + %6 = load double, double* %5, align 8 + %7 = getelementptr inbounds %struct.ddata3, %struct.ddata3* %1, i32 0, i32 2 + %8 = load double, double* %7, align 8 + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.16, i32 0, i32 0), double noundef %4, double noundef %6, double noundef %8) + %10 = bitcast %struct.ddata3* %0 to i8* + %11 = bitcast %struct.ddata3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %10, i8* align 8 %11, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff2i(%struct.fdata2i* noalias sret(%struct.fdata2i) align 4 %0, %struct.fdata2i* noundef byval(%struct.fdata2i) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %1, i32 0, i32 0 + %4 = load float, float* %3, align 4 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata2i, %struct.fdata2i* %1, i32 0, i32 1 + %7 = load i32, i32* %6, align 4 + %8 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i32 0, i32 0), double noundef %5, i32 noundef %7) + %9 = bitcast %struct.fdata2i* %0 to i8* + %10 = bitcast %struct.fdata2i* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 %10, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff2(%struct.fdata2* noalias sret(%struct.fdata2) align 4 %0, %struct.fdata2* noundef byval(%struct.fdata2) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %1, i32 0, i32 0 + %4 = load float, float* %3, align 4 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata2, %struct.fdata2* %1, i32 0, i32 1 + %7 = load float, float* %6, align 4 + %8 = fpext float %7 to double + %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i32 0, i32 0), double noundef %5, double noundef %8) + %10 = bitcast %struct.fdata2* %0 to i8* + %11 = bitcast %struct.fdata2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 4 %11, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff3(%struct.fdata3* noalias sret(%struct.fdata3) align 4 %0, %struct.fdata3* noundef byval(%struct.fdata3) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %1, i32 0, i32 0 + %4 = load float, float* %3, align 4 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %1, i32 0, i32 1 + %7 = load float, float* %6, align 4 + %8 = fpext float %7 to double + %9 = getelementptr inbounds %struct.fdata3, %struct.fdata3* %1, i32 0, i32 2 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i32 0, i32 0), double noundef %5, double noundef %8, double noundef %11) + %13 = bitcast %struct.fdata3* %0 to i8* + %14 = bitcast %struct.fdata3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff4(%struct.fdata4* noalias sret(%struct.fdata4) align 4 %0, %struct.fdata4* noundef byval(%struct.fdata4) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %1, i32 0, i32 0 + %4 = load float, float* %3, align 4 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %1, i32 0, i32 1 + %7 = load float, float* %6, align 4 + %8 = fpext float %7 to double + %9 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %1, i32 0, i32 2 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = getelementptr inbounds %struct.fdata4, %struct.fdata4* %1, i32 0, i32 3 + %13 = load float, float* %12, align 4 + %14 = fpext float %13 to double + %15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i32 0, i32 0), double noundef %5, double noundef %8, double noundef %11, double noundef %14) + %16 = bitcast %struct.fdata4* %0 to i8* + %17 = bitcast %struct.fdata4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %16, i8* align 4 %17, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff5(%struct.fdata5* noalias sret(%struct.fdata5) align 4 %0, %struct.fdata5* noundef byval(%struct.fdata5) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 0 + %4 = load float, float* %3, align 4 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 1 + %7 = load float, float* %6, align 4 + %8 = fpext float %7 to double + %9 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 2 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 3 + %13 = load float, float* %12, align 4 + %14 = fpext float %13 to double + %15 = getelementptr inbounds %struct.fdata5, %struct.fdata5* %1, i32 0, i32 4 + %16 = load float, float* %15, align 4 + %17 = fpext float %16 to double + %18 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i32 0, i32 0), double noundef %5, double noundef %8, double noundef %11, double noundef %14, double noundef %17) + %19 = bitcast %struct.fdata5* %0 to i8* + %20 = bitcast %struct.fdata5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %19, i8* align 4 %20, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff2id(%struct.fdata2id* noalias sret(%struct.fdata2id) align 8 %0, %struct.fdata2id* noundef byval(%struct.fdata2id) align 8 %1) #0 { + %3 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %1, i32 0, i32 0 + %4 = load i8, i8* %3, align 8 + %5 = sext i8 %4 to i32 + %6 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %1, i32 0, i32 1 + %7 = load i8, i8* %6, align 1 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.fdata2id, %struct.fdata2id* %1, i32 0, i32 2 + %10 = load double, double* %9, align 8 + %11 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i32 0, i32 0), i32 noundef %5, i32 noundef %8, double noundef %10) + %12 = bitcast %struct.fdata2id* %0 to i8* + %13 = bitcast %struct.fdata2id* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %12, i8* align 8 %13, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff7if(%struct.fdata7if* noalias sret(%struct.fdata7if) align 4 %0, %struct.fdata7if* noundef byval(%struct.fdata7if) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %1, i32 0, i32 0 + %4 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i32 0, i32 0 + %5 = load i8, i8* %4, align 4 + %6 = sext i8 %5 to i32 + %7 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %1, i32 0, i32 0 + %8 = getelementptr inbounds [7 x i8], [7 x i8]* %7, i32 0, i32 1 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = getelementptr inbounds %struct.fdata7if, %struct.fdata7if* %1, i32 0, i32 1 + %12 = load float, float* %11, align 4 + %13 = fpext float %12 to double + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i32 0, i32 0), i32 noundef %6, i32 noundef %10, double noundef %13) + %15 = bitcast %struct.fdata7if* %0 to i8* + %16 = bitcast %struct.fdata7if* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %15, i8* align 4 %16, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @ff4if(%struct.fdata4if* noalias sret(%struct.fdata4if) align 4 %0, %struct.fdata4if* noundef byval(%struct.fdata4if) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 0 + %4 = load float, float* %3, align 4 + %5 = fpext float %4 to double + %6 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 1 + %7 = load i8, i8* %6, align 4 + %8 = sext i8 %7 to i32 + %9 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 2 + %10 = load float, float* %9, align 4 + %11 = fpext float %10 to double + %12 = getelementptr inbounds %struct.fdata4if, %struct.fdata4if* %1, i32 0, i32 3 + %13 = load float, float* %12, align 4 + %14 = fpext float %13 to double + %15 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str.24, i32 0, i32 0), double noundef %5, i32 noundef %8, double noundef %11, double noundef %14) + %16 = bitcast %struct.fdata4if* %0 to i8* + %17 = bitcast %struct.fdata4if* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %16, i8* align 4 %17, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo(%struct.array* noalias sret(%struct.array) align 4 %0, %struct.array* noundef byval(%struct.array) align 4 %1) #0 { + %3 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %4 = getelementptr inbounds [8 x i32], [8 x i32]* %3, i32 0, i32 0 + %5 = load i32, i32* %4, align 4 + %6 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %7 = getelementptr inbounds [8 x i32], [8 x i32]* %6, i32 0, i32 1 + %8 = load i32, i32* %7, align 4 + %9 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %10 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i32 0, i32 2 + %11 = load i32, i32* %10, align 4 + %12 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x i8], [16 x i8]* @.str.25, i32 0, i32 0), i32 noundef %5, i32 noundef %8, i32 noundef %11) + %13 = bitcast %struct.array* %0 to i8* + %14 = bitcast %struct.array* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.array* noalias sret(%struct.array) align 4 %0, i32 noundef %1) #0 { + %3 = alloca i32, align 4 + %4 = alloca i32, align 4 + store i32 %1, i32* %3, align 4 + store i32 0, i32* %4, align 4 + br label %5 + +5: ; preds = %15, %2 + %6 = load i32, i32* %4, align 4 + %7 = icmp slt i32 %6, 8 + br i1 %7, label %8, label %18 + +8: ; preds = %5 + %9 = load i32, i32* %4, align 4 + %10 = load i32, i32* %3, align 4 + %11 = add nsw i32 %9, %10 + %12 = getelementptr inbounds %struct.array, %struct.array* %0, i32 0, i32 0 + %13 = load i32, i32* %4, align 4 + %14 = getelementptr inbounds [8 x i32], [8 x i32]* %12, i32 0, i32 %13 + store i32 %11, i32* %14, align 4 + br label %15 + +15: ; preds = %8 + %16 = load i32, i32* %4, align 4 + %17 = add nsw i32 %16, 1 + store i32 %17, i32* %4, align 4 + br label %5, !llvm.loop !2 + +18: ; preds = %5 + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @callback(void (%struct.array*, %struct.array*, %struct.point*, %struct.point1*)* noundef %0, %struct.array* noundef byval(%struct.array) align 4 %1) #0 { + %3 = alloca void (%struct.array*, %struct.array*, %struct.point*, %struct.point1*)*, align 4 + %4 = alloca %struct.array, align 4 + %5 = alloca %struct.point, align 4 + %6 = alloca %struct.point1, align 4 + %7 = alloca %struct.array, align 4 + %8 = alloca %struct.array, align 4 + store void (%struct.array*, %struct.array*, %struct.point*, %struct.point1*)* %0, void (%struct.array*, %struct.array*, %struct.point*, %struct.point1*)** %3, align 4 + call void @demo(%struct.array* sret(%struct.array) align 4 %4, %struct.array* noundef byval(%struct.array) align 4 %1) + %9 = bitcast %struct.point* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %9, i8* align 4 bitcast (%struct.point* @__const.callback.pt to i8*), i32 8, i1 false) + %10 = bitcast %struct.point1* %6 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %10, i8* align 4 bitcast (%struct.point1* @__const.callback.pt1 to i8*), i32 12, i1 false) + %11 = load void (%struct.array*, %struct.array*, %struct.point*, %struct.point1*)*, void (%struct.array*, %struct.array*, %struct.point*, %struct.point1*)** %3, align 4 + call void %11(%struct.array* sret(%struct.array) align 4 %7, %struct.array* noundef byval(%struct.array) align 4 %1, %struct.point* noundef byval(%struct.point) align 4 %5, %struct.point1* noundef byval(%struct.point1) align 4 %6) + call void @demo(%struct.array* sret(%struct.array) align 4 %8, %struct.array* noundef byval(%struct.array) align 4 %7) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @callback1(void (%struct.point*, %struct.array*, %struct.point*, %struct.point1*)* noundef %0, %struct.array* noundef byval(%struct.array) align 4 %1) #0 { + %3 = alloca void (%struct.point*, %struct.array*, %struct.point*, %struct.point1*)*, align 4 + %4 = alloca %struct.point, align 4 + %5 = alloca %struct.point1, align 4 + %6 = alloca %struct.point, align 4 + store void (%struct.point*, %struct.array*, %struct.point*, %struct.point1*)* %0, void (%struct.point*, %struct.array*, %struct.point*, %struct.point1*)** %3, align 4 + %7 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %8 = getelementptr inbounds [8 x i32], [8 x i32]* %7, i32 0, i32 0 + %9 = load i32, i32* %8, align 4 + %10 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %11 = getelementptr inbounds [8 x i32], [8 x i32]* %10, i32 0, i32 1 + %12 = load i32, i32* %11, align 4 + %13 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %14 = getelementptr inbounds [8 x i32], [8 x i32]* %13, i32 0, i32 7 + %15 = load i32, i32* %14, align 4 + %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([27 x i8], [27 x i8]* @.str.26, i32 0, i32 0), i32 noundef %9, i32 noundef %12, i32 noundef %15) + %17 = bitcast %struct.point* %4 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %17, i8* align 4 bitcast (%struct.point* @__const.callback1.pt to i8*), i32 8, i1 false) + %18 = bitcast %struct.point1* %5 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %18, i8* align 4 bitcast (%struct.point1* @__const.callback1.pt1 to i8*), i32 12, i1 false) + %19 = load void (%struct.point*, %struct.array*, %struct.point*, %struct.point1*)*, void (%struct.point*, %struct.array*, %struct.point*, %struct.point1*)** %3, align 4 + call void %19(%struct.point* sret(%struct.point) align 4 %6, %struct.array* noundef byval(%struct.array) align 4 %1, %struct.point* noundef byval(%struct.point) align 4 %4, %struct.point1* noundef byval(%struct.point1) align 4 %5) + %20 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 0 + %21 = load i32, i32* %20, align 4 + %22 = getelementptr inbounds %struct.point, %struct.point* %6, i32 0, i32 1 + %23 = load i32, i32* %22, align 4 + %24 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i32 0, i32 0), i32 noundef %21, i32 noundef %23) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @mycallback(%struct.point* noalias sret(%struct.point) align 4 %0, %struct.array* noundef byval(%struct.array) align 4 %1, %struct.point* noundef byval(%struct.point) align 4 %2, %struct.point1* noundef byval(%struct.point1) align 4 %3) #0 { + %5 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %6 = getelementptr inbounds [8 x i32], [8 x i32]* %5, i32 0, i32 0 + %7 = load i32, i32* %6, align 4 + %8 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %9 = getelementptr inbounds [8 x i32], [8 x i32]* %8, i32 0, i32 1 + %10 = load i32, i32* %9, align 4 + %11 = getelementptr inbounds %struct.array, %struct.array* %1, i32 0, i32 0 + %12 = getelementptr inbounds [8 x i32], [8 x i32]* %11, i32 0, i32 7 + %13 = load i32, i32* %12, align 4 + %14 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i32 0, i32 0), i32 noundef %7, i32 noundef %10, i32 noundef %13) + %15 = getelementptr inbounds %struct.point, %struct.point* %2, i32 0, i32 0 + %16 = load i32, i32* %15, align 4 + %17 = getelementptr inbounds %struct.point, %struct.point* %2, i32 0, i32 1 + %18 = load i32, i32* %17, align 4 + %19 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x i8], [22 x i8]* @.str.29, i32 0, i32 0), i32 noundef %16, i32 noundef %18) + %20 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %21 = load i32, i32* %20, align 4 + %22 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 1 + %23 = load i32, i32* %22, align 4 + %24 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 2 + %25 = load i32, i32* %24, align 4 + %26 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([26 x i8], [26 x i8]* @.str.30, i32 0, i32 0), i32 noundef %21, i32 noundef %23, i32 noundef %25) + %27 = getelementptr inbounds %struct.point, %struct.point* %0, i32 0, i32 0 + %28 = getelementptr inbounds %struct.point, %struct.point* %2, i32 0, i32 0 + %29 = load i32, i32* %28, align 4 + %30 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + %31 = load i32, i32* %30, align 4 + %32 = add nsw i32 %29, %31 + store i32 %32, i32* %27, align 4 + %33 = getelementptr inbounds %struct.point, %struct.point* %0, i32 0, i32 1 + %34 = getelementptr inbounds %struct.point, %struct.point* %2, i32 0, i32 1 + %35 = load i32, i32* %34, align 4 + %36 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 1 + %37 = load i32, i32* %36, align 4 + %38 = add nsw i32 %35, %37 + store i32 %38, i32* %33, align 4 + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #2 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} +!2 = distinct !{!2, !3} +!3 = !{!"llvm.loop.mustprogress"} diff --git a/internal/cabi/_testdata/arch/wasm32/empty.ll b/internal/cabi/_testdata/arch/wasm32/empty.ll new file mode 100644 index 00000000..1367dc65 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/empty.ll @@ -0,0 +1,62 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.empty = type {} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo0() #0 { + %1 = alloca %struct.empty, align 1 + %2 = alloca %struct.empty, align 1 + %3 = bitcast %struct.empty* %1 to i8* + %4 = bitcast %struct.empty* %2 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 0, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.empty* %2 to i8* + %6 = bitcast %struct.empty* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 0, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo2(i32 noundef %0) #0 { + %2 = alloca %struct.empty, align 1 + %3 = alloca i32, align 4 + store i32 %0, i32* %3, align 4 + %4 = load i32, i32* %3, align 4 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo3(i32 noundef %0, i32 noundef %1) #0 { + %3 = alloca %struct.empty, align 1 + %4 = alloca i32, align 4 + %5 = alloca i32, align 4 + store i32 %0, i32* %4, align 4 + store i32 %1, i32* %5, align 4 + %6 = load i32, i32* %4, align 4 + %7 = load i32, i32* %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_float32.ll b/internal/cabi/_testdata/arch/wasm32/struct_float32.ll new file mode 100644 index 00000000..9134559f --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_float32.ll @@ -0,0 +1,203 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { float } +%struct.point2 = type { float, float } +%struct.point3 = type { float, float, float } +%struct.point4 = type { float, float, float, float } +%struct.point5 = type { float, float, float, float, float } +%struct.point6 = type { float, float, float, float, float, float } +%struct.point7 = type { float, float, float, float, float, float, float } +%struct.point8 = type { float, float, float, float, float, float, float, float } +%struct.point9 = type { float, float, float, float, float, float, float, float, float } +%struct.point10 = type { float, float, float, float, float, float, float, float, float, float } +%struct.point11 = type { float, float, float, float, float, float, float, float, float, float, float } +%struct.point12 = type { float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point13 = type { float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point14 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point15 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point16 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point17 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point18 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point19 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } +%struct.point20 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float } + +; Function Attrs: noinline nounwind optnone +define hidden float @demo1(float %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store float %0, float* %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load float, float* %7, align 4 + ret float %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_float64.ll b/internal/cabi/_testdata/arch/wasm32/struct_float64.ll new file mode 100644 index 00000000..50cb1835 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_float64.ll @@ -0,0 +1,203 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { double } +%struct.point2 = type { double, double } +%struct.point3 = type { double, double, double } +%struct.point4 = type { double, double, double, double } +%struct.point5 = type { double, double, double, double, double } +%struct.point6 = type { double, double, double, double, double, double } +%struct.point7 = type { double, double, double, double, double, double, double } +%struct.point8 = type { double, double, double, double, double, double, double, double } +%struct.point9 = type { double, double, double, double, double, double, double, double, double } +%struct.point10 = type { double, double, double, double, double, double, double, double, double, double } +%struct.point11 = type { double, double, double, double, double, double, double, double, double, double, double } +%struct.point12 = type { double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point13 = type { double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point14 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point15 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point16 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point17 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point18 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point19 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } +%struct.point20 = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double } + +; Function Attrs: noinline nounwind optnone +define hidden double @demo1(double %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store double %0, double* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load double, double* %7, align 8 + ret double %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, %struct.point2* noundef byval(%struct.point2) align 8 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef byval(%struct.point3) align 8 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef byval(%struct.point4) align 8 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef byval(%struct.point6) align 8 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef byval(%struct.point7) align 8 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef byval(%struct.point8) align 8 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_int16.ll b/internal/cabi/_testdata/arch/wasm32/struct_int16.ll new file mode 100644 index 00000000..3330ffd1 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_int16.ll @@ -0,0 +1,203 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { i16 } +%struct.point2 = type { i16, i16 } +%struct.point3 = type { i16, i16, i16 } +%struct.point4 = type { i16, i16, i16, i16 } +%struct.point5 = type { i16, i16, i16, i16, i16 } +%struct.point6 = type { i16, i16, i16, i16, i16, i16 } +%struct.point7 = type { i16, i16, i16, i16, i16, i16, i16 } +%struct.point8 = type { i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point9 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point10 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point11 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point12 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point13 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point14 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point15 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point16 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point17 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point18 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point19 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } +%struct.point20 = type { i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16 } + +; Function Attrs: noinline nounwind optnone +define hidden i16 @demo1(i16 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i16 %0, i16* %4, align 2 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %5, i8* align 2 %6, i32 2, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i16, i16* %7, align 2 + ret i16 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 2 %0, %struct.point2* noundef byval(%struct.point2) align 2 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 2 %0, %struct.point3* noundef byval(%struct.point3) align 2 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 2 %0, %struct.point4* noundef byval(%struct.point4) align 2 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 2 %0, %struct.point5* noundef byval(%struct.point5) align 2 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 2 %0, %struct.point6* noundef byval(%struct.point6) align 2 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, %struct.point7* noundef byval(%struct.point7) align 2 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 2 %0, %struct.point8* noundef byval(%struct.point8) align 2 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 2 %0, %struct.point9* noundef byval(%struct.point9) align 2 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 2 %0, %struct.point10* noundef byval(%struct.point10) align 2 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 2 %0, %struct.point11* noundef byval(%struct.point11) align 2 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 2 %0, %struct.point12* noundef byval(%struct.point12) align 2 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 2 %0, %struct.point13* noundef byval(%struct.point13) align 2 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 2 %0, %struct.point14* noundef byval(%struct.point14) align 2 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 2 %0, %struct.point15* noundef byval(%struct.point15) align 2 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 2 %0, %struct.point16* noundef byval(%struct.point16) align 2 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 2 %0, %struct.point17* noundef byval(%struct.point17) align 2 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 2 %0, %struct.point18* noundef byval(%struct.point18) align 2 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 2 %0, %struct.point19* noundef byval(%struct.point19) align 2 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 2 %0, %struct.point20* noundef byval(%struct.point20) align 2 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_int32.ll b/internal/cabi/_testdata/arch/wasm32/struct_int32.ll new file mode 100644 index 00000000..433a2e71 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_int32.ll @@ -0,0 +1,203 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { i32 } +%struct.point2 = type { i32, i32 } +%struct.point3 = type { i32, i32, i32 } +%struct.point4 = type { i32, i32, i32, i32 } +%struct.point5 = type { i32, i32, i32, i32, i32 } +%struct.point6 = type { i32, i32, i32, i32, i32, i32 } +%struct.point7 = type { i32, i32, i32, i32, i32, i32, i32 } +%struct.point8 = type { i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point9 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point10 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point11 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point12 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point13 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point14 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point15 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point16 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point17 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point18 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point19 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } +%struct.point20 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 } + +; Function Attrs: noinline nounwind optnone +define hidden i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i32 %0, i32* %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i32, i32* %7, align 4 + ret i32 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_int64.ll b/internal/cabi/_testdata/arch/wasm32/struct_int64.ll new file mode 100644 index 00000000..a09a4af7 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_int64.ll @@ -0,0 +1,203 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { i64 } +%struct.point2 = type { i64, i64 } +%struct.point3 = type { i64, i64, i64 } +%struct.point4 = type { i64, i64, i64, i64 } +%struct.point5 = type { i64, i64, i64, i64, i64 } +%struct.point6 = type { i64, i64, i64, i64, i64, i64 } +%struct.point7 = type { i64, i64, i64, i64, i64, i64, i64 } +%struct.point8 = type { i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point9 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point10 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point11 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point12 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point13 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point14 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point15 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point16 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point17 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point18 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point19 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } +%struct.point20 = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 } + +; Function Attrs: noinline nounwind optnone +define hidden i64 @demo1(i64 %0) #0 { + %2 = alloca %struct.point1, align 8 + %3 = alloca %struct.point1, align 8 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i64 %0, i64* %4, align 8 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %5, i8* align 8 %6, i32 8, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i64, i64* %7, align 8 + ret i64 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 8 %0, %struct.point2* noundef byval(%struct.point2) align 8 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef byval(%struct.point3) align 8 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 8 %0, %struct.point4* noundef byval(%struct.point4) align 8 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 8 %0, %struct.point6* noundef byval(%struct.point6) align 8 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 8 %0, %struct.point7* noundef byval(%struct.point7) align 8 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 8 %0, %struct.point8* noundef byval(%struct.point8) align 8 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 8 %0, %struct.point10* noundef byval(%struct.point10) align 8 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 8 %0, %struct.point12* noundef byval(%struct.point12) align 8 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 8 %0, %struct.point13* noundef byval(%struct.point13) align 8 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 8 %0, %struct.point14* noundef byval(%struct.point14) align 8 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 8 %0, %struct.point16* noundef byval(%struct.point16) align 8 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 8 %0, %struct.point18* noundef byval(%struct.point18) align 8 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_int8.ll b/internal/cabi/_testdata/arch/wasm32/struct_int8.ll new file mode 100644 index 00000000..a5ca8a00 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_int8.ll @@ -0,0 +1,203 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { i8 } +%struct.point2 = type { i8, i8 } +%struct.point3 = type { i8, i8, i8 } +%struct.point4 = type { i8, i8, i8, i8 } +%struct.point5 = type { i8, i8, i8, i8, i8 } +%struct.point6 = type { i8, i8, i8, i8, i8, i8 } +%struct.point7 = type { i8, i8, i8, i8, i8, i8, i8 } +%struct.point8 = type { i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point9 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point10 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point11 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point12 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point13 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point14 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point15 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point16 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point17 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point18 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point19 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } +%struct.point20 = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } + +; Function Attrs: noinline nounwind optnone +define hidden i8 @demo1(i8 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i8 %0, i8* %4, align 1 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %5, i8* align 1 %6, i32 1, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i8, i8* %7, align 1 + ret i8 %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 1 %0, %struct.point2* noundef byval(%struct.point2) align 1 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 2, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 1 %0, %struct.point3* noundef byval(%struct.point3) align 1 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 3, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 1 %0, %struct.point4* noundef byval(%struct.point4) align 1 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 1 %0, %struct.point5* noundef byval(%struct.point5) align 1 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 5, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 1 %0, %struct.point6* noundef byval(%struct.point6) align 1 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 1 %0, %struct.point7* noundef byval(%struct.point7) align 1 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 7, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 1 %0, %struct.point8* noundef byval(%struct.point8) align 1 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 1 %0, %struct.point9* noundef byval(%struct.point9) align 1 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 1 %0, %struct.point10* noundef byval(%struct.point10) align 1 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 1 %0, %struct.point11* noundef byval(%struct.point11) align 1 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 1 %0, %struct.point12* noundef byval(%struct.point12) align 1 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 1 %0, %struct.point13* noundef byval(%struct.point13) align 1 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 1 %0, %struct.point14* noundef byval(%struct.point14) align 1 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 1 %0, %struct.point15* noundef byval(%struct.point15) align 1 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 1 %0, %struct.point16* noundef byval(%struct.point16) align 1 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 1 %0, %struct.point17* noundef byval(%struct.point17) align 1 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 1 %0, %struct.point18* noundef byval(%struct.point18) align 1 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 1 %0, %struct.point19* noundef byval(%struct.point19) align 1 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 1 %0, %struct.point20* noundef byval(%struct.point20) align 1 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 1 %3, i8* align 1 %4, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_mixed.ll b/internal/cabi/_testdata/arch/wasm32/struct_mixed.ll new file mode 100644 index 00000000..e166fe6f --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_mixed.ll @@ -0,0 +1,9467 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { i8, i16 } +%struct.point2 = type { i8, i32 } +%struct.point3 = type { i8, i64 } +%struct.point4 = type { i8, float } +%struct.point5 = type { i8, double } +%struct.point6 = type { i8, i8* } +%struct.point7 = type { i16, i8 } +%struct.point8 = type { i16, i32 } +%struct.point9 = type { i16, i64 } +%struct.point10 = type { i16, float } +%struct.point11 = type { i16, double } +%struct.point12 = type { i16, i8* } +%struct.point13 = type { i32, i8 } +%struct.point14 = type { i32, i16 } +%struct.point15 = type { i32, i64 } +%struct.point16 = type { i32, float } +%struct.point17 = type { i32, double } +%struct.point18 = type { i32, i8* } +%struct.point19 = type { i64, i8 } +%struct.point20 = type { i64, i16 } +%struct.point21 = type { i64, i32 } +%struct.point22 = type { i64, float } +%struct.point23 = type { i64, double } +%struct.point24 = type { i64, i8* } +%struct.point25 = type { float, i8 } +%struct.point26 = type { float, i16 } +%struct.point27 = type { float, i32 } +%struct.point28 = type { float, i64 } +%struct.point29 = type { float, double } +%struct.point30 = type { float, i8* } +%struct.point31 = type { double, i8 } +%struct.point32 = type { double, i16 } +%struct.point33 = type { double, i32 } +%struct.point34 = type { double, i64 } +%struct.point35 = type { double, float } +%struct.point36 = type { double, i8* } +%struct.point37 = type { i8*, i8 } +%struct.point38 = type { i8*, i16 } +%struct.point39 = type { i8*, i32 } +%struct.point40 = type { i8*, i64 } +%struct.point41 = type { i8*, float } +%struct.point42 = type { i8*, double } +%struct.point43 = type { i8, i16, i8 } +%struct.point44 = type { i8, i16, i8, i8 } +%struct.point45 = type { i8, i16, i8, i8, i8 } +%struct.point46 = type { i8, i16, i8, i8, i16 } +%struct.point47 = type { i8, i16, i8, i8, i32 } +%struct.point48 = type { i8, i16, i8, i8, float } +%struct.point49 = type { i8, i16, i8, i16 } +%struct.point50 = type { i8, i16, i8, i16, i8 } +%struct.point51 = type { i8, i16, i8, i16, i16 } +%struct.point52 = type { i8, i16, i8, i16, i32 } +%struct.point53 = type { i8, i16, i8, i16, float } +%struct.point54 = type { i8, i16, i8, i32 } +%struct.point55 = type { i8, i16, i8, i32, i8 } +%struct.point56 = type { i8, i16, i8, i32, i16 } +%struct.point57 = type { i8, i16, i8, i32, i32 } +%struct.point58 = type { i8, i16, i8, i32, float } +%struct.point59 = type { i8, i16, i8, float } +%struct.point60 = type { i8, i16, i8, float, i8 } +%struct.point61 = type { i8, i16, i8, float, i16 } +%struct.point62 = type { i8, i16, i8, float, i32 } +%struct.point63 = type { i8, i16, i8, float, float } +%struct.point64 = type { i8, i16, i16 } +%struct.point65 = type { i8, i16, i16, i8 } +%struct.point66 = type { i8, i16, i16, i8, i8 } +%struct.point67 = type { i8, i16, i16, i8, i16 } +%struct.point68 = type { i8, i16, i16, i8, i32 } +%struct.point69 = type { i8, i16, i16, i8, float } +%struct.point70 = type { i8, i16, i16, i16 } +%struct.point71 = type { i8, i16, i16, i16, i8 } +%struct.point72 = type { i8, i16, i16, i16, i16 } +%struct.point73 = type { i8, i16, i16, i16, i32 } +%struct.point74 = type { i8, i16, i16, i16, float } +%struct.point75 = type { i8, i16, i16, i32 } +%struct.point76 = type { i8, i16, i16, i32, i8 } +%struct.point77 = type { i8, i16, i16, i32, i16 } +%struct.point78 = type { i8, i16, i16, i32, i32 } +%struct.point79 = type { i8, i16, i16, i32, float } +%struct.point80 = type { i8, i16, i16, float } +%struct.point81 = type { i8, i16, i16, float, i8 } +%struct.point82 = type { i8, i16, i16, float, i16 } +%struct.point83 = type { i8, i16, i16, float, i32 } +%struct.point84 = type { i8, i16, i16, float, float } +%struct.point85 = type { i8, i16, i32 } +%struct.point86 = type { i8, i16, i32, i8 } +%struct.point87 = type { i8, i16, i32, i8, i8 } +%struct.point88 = type { i8, i16, i32, i8, i16 } +%struct.point89 = type { i8, i16, i32, i8, i32 } +%struct.point90 = type { i8, i16, i32, i8, float } +%struct.point91 = type { i8, i16, i32, i16 } +%struct.point92 = type { i8, i16, i32, i16, i8 } +%struct.point93 = type { i8, i16, i32, i16, i16 } +%struct.point94 = type { i8, i16, i32, i16, i32 } +%struct.point95 = type { i8, i16, i32, i16, float } +%struct.point96 = type { i8, i16, i32, i32 } +%struct.point97 = type { i8, i16, i32, i32, i8 } +%struct.point98 = type { i8, i16, i32, i32, i16 } +%struct.point99 = type { i8, i16, i32, i32, i32 } +%struct.point100 = type { i8, i16, i32, i32, float } +%struct.point101 = type { i8, i16, i32, float } +%struct.point102 = type { i8, i16, i32, float, i8 } +%struct.point103 = type { i8, i16, i32, float, i16 } +%struct.point104 = type { i8, i16, i32, float, i32 } +%struct.point105 = type { i8, i16, i32, float, float } +%struct.point106 = type { i8, i16, float } +%struct.point107 = type { i8, i16, float, i8 } +%struct.point108 = type { i8, i16, float, i8, i8 } +%struct.point109 = type { i8, i16, float, i8, i16 } +%struct.point110 = type { i8, i16, float, i8, i32 } +%struct.point111 = type { i8, i16, float, i8, float } +%struct.point112 = type { i8, i16, float, i16 } +%struct.point113 = type { i8, i16, float, i16, i8 } +%struct.point114 = type { i8, i16, float, i16, i16 } +%struct.point115 = type { i8, i16, float, i16, i32 } +%struct.point116 = type { i8, i16, float, i16, float } +%struct.point117 = type { i8, i16, float, i32 } +%struct.point118 = type { i8, i16, float, i32, i8 } +%struct.point119 = type { i8, i16, float, i32, i16 } +%struct.point120 = type { i8, i16, float, i32, i32 } +%struct.point121 = type { i8, i16, float, i32, float } +%struct.point122 = type { i8, i16, float, float } +%struct.point123 = type { i8, i16, float, float, i8 } +%struct.point124 = type { i8, i16, float, float, i16 } +%struct.point125 = type { i8, i16, float, float, i32 } +%struct.point126 = type { i8, i16, float, float, float } +%struct.point127 = type { i8, i32, i8 } +%struct.point128 = type { i8, i32, i8, i8 } +%struct.point129 = type { i8, i32, i8, i8, i8 } +%struct.point130 = type { i8, i32, i8, i8, i16 } +%struct.point131 = type { i8, i32, i8, i8, i32 } +%struct.point132 = type { i8, i32, i8, i8, float } +%struct.point133 = type { i8, i32, i8, i16 } +%struct.point134 = type { i8, i32, i8, i16, i8 } +%struct.point135 = type { i8, i32, i8, i16, i16 } +%struct.point136 = type { i8, i32, i8, i16, i32 } +%struct.point137 = type { i8, i32, i8, i16, float } +%struct.point138 = type { i8, i32, i8, i32 } +%struct.point139 = type { i8, i32, i8, i32, i8 } +%struct.point140 = type { i8, i32, i8, i32, i16 } +%struct.point141 = type { i8, i32, i8, i32, i32 } +%struct.point142 = type { i8, i32, i8, i32, float } +%struct.point143 = type { i8, i32, i8, float } +%struct.point144 = type { i8, i32, i8, float, i8 } +%struct.point145 = type { i8, i32, i8, float, i16 } +%struct.point146 = type { i8, i32, i8, float, i32 } +%struct.point147 = type { i8, i32, i8, float, float } +%struct.point148 = type { i8, i32, i16 } +%struct.point149 = type { i8, i32, i16, i8 } +%struct.point150 = type { i8, i32, i16, i8, i8 } +%struct.point151 = type { i8, i32, i16, i8, i16 } +%struct.point152 = type { i8, i32, i16, i8, i32 } +%struct.point153 = type { i8, i32, i16, i8, float } +%struct.point154 = type { i8, i32, i16, i16 } +%struct.point155 = type { i8, i32, i16, i16, i8 } +%struct.point156 = type { i8, i32, i16, i16, i16 } +%struct.point157 = type { i8, i32, i16, i16, i32 } +%struct.point158 = type { i8, i32, i16, i16, float } +%struct.point159 = type { i8, i32, i16, i32 } +%struct.point160 = type { i8, i32, i16, i32, i8 } +%struct.point161 = type { i8, i32, i16, i32, i16 } +%struct.point162 = type { i8, i32, i16, i32, i32 } +%struct.point163 = type { i8, i32, i16, i32, float } +%struct.point164 = type { i8, i32, i16, float } +%struct.point165 = type { i8, i32, i16, float, i8 } +%struct.point166 = type { i8, i32, i16, float, i16 } +%struct.point167 = type { i8, i32, i16, float, i32 } +%struct.point168 = type { i8, i32, i16, float, float } +%struct.point169 = type { i8, i32, i32 } +%struct.point170 = type { i8, i32, i32, i8 } +%struct.point171 = type { i8, i32, i32, i8, i8 } +%struct.point172 = type { i8, i32, i32, i8, i16 } +%struct.point173 = type { i8, i32, i32, i8, i32 } +%struct.point174 = type { i8, i32, i32, i8, float } +%struct.point175 = type { i8, i32, i32, i16 } +%struct.point176 = type { i8, i32, i32, i16, i8 } +%struct.point177 = type { i8, i32, i32, i16, i16 } +%struct.point178 = type { i8, i32, i32, i16, i32 } +%struct.point179 = type { i8, i32, i32, i16, float } +%struct.point180 = type { i8, i32, i32, i32 } +%struct.point181 = type { i8, i32, i32, i32, i8 } +%struct.point182 = type { i8, i32, i32, i32, i16 } +%struct.point183 = type { i8, i32, i32, i32, i32 } +%struct.point184 = type { i8, i32, i32, i32, float } +%struct.point185 = type { i8, i32, i32, float } +%struct.point186 = type { i8, i32, i32, float, i8 } +%struct.point187 = type { i8, i32, i32, float, i16 } +%struct.point188 = type { i8, i32, i32, float, i32 } +%struct.point189 = type { i8, i32, i32, float, float } +%struct.point190 = type { i8, i32, float } +%struct.point191 = type { i8, i32, float, i8 } +%struct.point192 = type { i8, i32, float, i8, i8 } +%struct.point193 = type { i8, i32, float, i8, i16 } +%struct.point194 = type { i8, i32, float, i8, i32 } +%struct.point195 = type { i8, i32, float, i8, float } +%struct.point196 = type { i8, i32, float, i16 } +%struct.point197 = type { i8, i32, float, i16, i8 } +%struct.point198 = type { i8, i32, float, i16, i16 } +%struct.point199 = type { i8, i32, float, i16, i32 } +%struct.point200 = type { i8, i32, float, i16, float } +%struct.point201 = type { i8, i32, float, i32 } +%struct.point202 = type { i8, i32, float, i32, i8 } +%struct.point203 = type { i8, i32, float, i32, i16 } +%struct.point204 = type { i8, i32, float, i32, i32 } +%struct.point205 = type { i8, i32, float, i32, float } +%struct.point206 = type { i8, i32, float, float } +%struct.point207 = type { i8, i32, float, float, i8 } +%struct.point208 = type { i8, i32, float, float, i16 } +%struct.point209 = type { i8, i32, float, float, i32 } +%struct.point210 = type { i8, i32, float, float, float } +%struct.point211 = type { i8, float, i8 } +%struct.point212 = type { i8, float, i8, i8 } +%struct.point213 = type { i8, float, i8, i8, i8 } +%struct.point214 = type { i8, float, i8, i8, i16 } +%struct.point215 = type { i8, float, i8, i8, i32 } +%struct.point216 = type { i8, float, i8, i8, float } +%struct.point217 = type { i8, float, i8, i16 } +%struct.point218 = type { i8, float, i8, i16, i8 } +%struct.point219 = type { i8, float, i8, i16, i16 } +%struct.point220 = type { i8, float, i8, i16, i32 } +%struct.point221 = type { i8, float, i8, i16, float } +%struct.point222 = type { i8, float, i8, i32 } +%struct.point223 = type { i8, float, i8, i32, i8 } +%struct.point224 = type { i8, float, i8, i32, i16 } +%struct.point225 = type { i8, float, i8, i32, i32 } +%struct.point226 = type { i8, float, i8, i32, float } +%struct.point227 = type { i8, float, i8, float } +%struct.point228 = type { i8, float, i8, float, i8 } +%struct.point229 = type { i8, float, i8, float, i16 } +%struct.point230 = type { i8, float, i8, float, i32 } +%struct.point231 = type { i8, float, i8, float, float } +%struct.point232 = type { i8, float, i16 } +%struct.point233 = type { i8, float, i16, i8 } +%struct.point234 = type { i8, float, i16, i8, i8 } +%struct.point235 = type { i8, float, i16, i8, i16 } +%struct.point236 = type { i8, float, i16, i8, i32 } +%struct.point237 = type { i8, float, i16, i8, float } +%struct.point238 = type { i8, float, i16, i16 } +%struct.point239 = type { i8, float, i16, i16, i8 } +%struct.point240 = type { i8, float, i16, i16, i16 } +%struct.point241 = type { i8, float, i16, i16, i32 } +%struct.point242 = type { i8, float, i16, i16, float } +%struct.point243 = type { i8, float, i16, i32 } +%struct.point244 = type { i8, float, i16, i32, i8 } +%struct.point245 = type { i8, float, i16, i32, i16 } +%struct.point246 = type { i8, float, i16, i32, i32 } +%struct.point247 = type { i8, float, i16, i32, float } +%struct.point248 = type { i8, float, i16, float } +%struct.point249 = type { i8, float, i16, float, i8 } +%struct.point250 = type { i8, float, i16, float, i16 } +%struct.point251 = type { i8, float, i16, float, i32 } +%struct.point252 = type { i8, float, i16, float, float } +%struct.point253 = type { i8, float, i32 } +%struct.point254 = type { i8, float, i32, i8 } +%struct.point255 = type { i8, float, i32, i8, i8 } +%struct.point256 = type { i8, float, i32, i8, i16 } +%struct.point257 = type { i8, float, i32, i8, i32 } +%struct.point258 = type { i8, float, i32, i8, float } +%struct.point259 = type { i8, float, i32, i16 } +%struct.point260 = type { i8, float, i32, i16, i8 } +%struct.point261 = type { i8, float, i32, i16, i16 } +%struct.point262 = type { i8, float, i32, i16, i32 } +%struct.point263 = type { i8, float, i32, i16, float } +%struct.point264 = type { i8, float, i32, i32 } +%struct.point265 = type { i8, float, i32, i32, i8 } +%struct.point266 = type { i8, float, i32, i32, i16 } +%struct.point267 = type { i8, float, i32, i32, i32 } +%struct.point268 = type { i8, float, i32, i32, float } +%struct.point269 = type { i8, float, i32, float } +%struct.point270 = type { i8, float, i32, float, i8 } +%struct.point271 = type { i8, float, i32, float, i16 } +%struct.point272 = type { i8, float, i32, float, i32 } +%struct.point273 = type { i8, float, i32, float, float } +%struct.point274 = type { i8, float, float } +%struct.point275 = type { i8, float, float, i8 } +%struct.point276 = type { i8, float, float, i8, i8 } +%struct.point277 = type { i8, float, float, i8, i16 } +%struct.point278 = type { i8, float, float, i8, i32 } +%struct.point279 = type { i8, float, float, i8, float } +%struct.point280 = type { i8, float, float, i16 } +%struct.point281 = type { i8, float, float, i16, i8 } +%struct.point282 = type { i8, float, float, i16, i16 } +%struct.point283 = type { i8, float, float, i16, i32 } +%struct.point284 = type { i8, float, float, i16, float } +%struct.point285 = type { i8, float, float, i32 } +%struct.point286 = type { i8, float, float, i32, i8 } +%struct.point287 = type { i8, float, float, i32, i16 } +%struct.point288 = type { i8, float, float, i32, i32 } +%struct.point289 = type { i8, float, float, i32, float } +%struct.point290 = type { i8, float, float, float } +%struct.point291 = type { i8, float, float, float, i8 } +%struct.point292 = type { i8, float, float, float, i16 } +%struct.point293 = type { i8, float, float, float, i32 } +%struct.point294 = type { i8, float, float, float, float } +%struct.point295 = type { i16, i8, i8 } +%struct.point296 = type { i16, i8, i8, i8 } +%struct.point297 = type { i16, i8, i8, i8, i8 } +%struct.point298 = type { i16, i8, i8, i8, i16 } +%struct.point299 = type { i16, i8, i8, i8, i32 } +%struct.point300 = type { i16, i8, i8, i8, float } +%struct.point301 = type { i16, i8, i8, i16 } +%struct.point302 = type { i16, i8, i8, i16, i8 } +%struct.point303 = type { i16, i8, i8, i16, i16 } +%struct.point304 = type { i16, i8, i8, i16, i32 } +%struct.point305 = type { i16, i8, i8, i16, float } +%struct.point306 = type { i16, i8, i8, i32 } +%struct.point307 = type { i16, i8, i8, i32, i8 } +%struct.point308 = type { i16, i8, i8, i32, i16 } +%struct.point309 = type { i16, i8, i8, i32, i32 } +%struct.point310 = type { i16, i8, i8, i32, float } +%struct.point311 = type { i16, i8, i8, float } +%struct.point312 = type { i16, i8, i8, float, i8 } +%struct.point313 = type { i16, i8, i8, float, i16 } +%struct.point314 = type { i16, i8, i8, float, i32 } +%struct.point315 = type { i16, i8, i8, float, float } +%struct.point316 = type { i16, i8, i16 } +%struct.point317 = type { i16, i8, i16, i8 } +%struct.point318 = type { i16, i8, i16, i8, i8 } +%struct.point319 = type { i16, i8, i16, i8, i16 } +%struct.point320 = type { i16, i8, i16, i8, i32 } +%struct.point321 = type { i16, i8, i16, i8, float } +%struct.point322 = type { i16, i8, i16, i16 } +%struct.point323 = type { i16, i8, i16, i16, i8 } +%struct.point324 = type { i16, i8, i16, i16, i16 } +%struct.point325 = type { i16, i8, i16, i16, i32 } +%struct.point326 = type { i16, i8, i16, i16, float } +%struct.point327 = type { i16, i8, i16, i32 } +%struct.point328 = type { i16, i8, i16, i32, i8 } +%struct.point329 = type { i16, i8, i16, i32, i16 } +%struct.point330 = type { i16, i8, i16, i32, i32 } +%struct.point331 = type { i16, i8, i16, i32, float } +%struct.point332 = type { i16, i8, i16, float } +%struct.point333 = type { i16, i8, i16, float, i8 } +%struct.point334 = type { i16, i8, i16, float, i16 } +%struct.point335 = type { i16, i8, i16, float, i32 } +%struct.point336 = type { i16, i8, i16, float, float } +%struct.point337 = type { i16, i8, i32 } +%struct.point338 = type { i16, i8, i32, i8 } +%struct.point339 = type { i16, i8, i32, i8, i8 } +%struct.point340 = type { i16, i8, i32, i8, i16 } +%struct.point341 = type { i16, i8, i32, i8, i32 } +%struct.point342 = type { i16, i8, i32, i8, float } +%struct.point343 = type { i16, i8, i32, i16 } +%struct.point344 = type { i16, i8, i32, i16, i8 } +%struct.point345 = type { i16, i8, i32, i16, i16 } +%struct.point346 = type { i16, i8, i32, i16, i32 } +%struct.point347 = type { i16, i8, i32, i16, float } +%struct.point348 = type { i16, i8, i32, i32 } +%struct.point349 = type { i16, i8, i32, i32, i8 } +%struct.point350 = type { i16, i8, i32, i32, i16 } +%struct.point351 = type { i16, i8, i32, i32, i32 } +%struct.point352 = type { i16, i8, i32, i32, float } +%struct.point353 = type { i16, i8, i32, float } +%struct.point354 = type { i16, i8, i32, float, i8 } +%struct.point355 = type { i16, i8, i32, float, i16 } +%struct.point356 = type { i16, i8, i32, float, i32 } +%struct.point357 = type { i16, i8, i32, float, float } +%struct.point358 = type { i16, i8, float } +%struct.point359 = type { i16, i8, float, i8 } +%struct.point360 = type { i16, i8, float, i8, i8 } +%struct.point361 = type { i16, i8, float, i8, i16 } +%struct.point362 = type { i16, i8, float, i8, i32 } +%struct.point363 = type { i16, i8, float, i8, float } +%struct.point364 = type { i16, i8, float, i16 } +%struct.point365 = type { i16, i8, float, i16, i8 } +%struct.point366 = type { i16, i8, float, i16, i16 } +%struct.point367 = type { i16, i8, float, i16, i32 } +%struct.point368 = type { i16, i8, float, i16, float } +%struct.point369 = type { i16, i8, float, i32 } +%struct.point370 = type { i16, i8, float, i32, i8 } +%struct.point371 = type { i16, i8, float, i32, i16 } +%struct.point372 = type { i16, i8, float, i32, i32 } +%struct.point373 = type { i16, i8, float, i32, float } +%struct.point374 = type { i16, i8, float, float } +%struct.point375 = type { i16, i8, float, float, i8 } +%struct.point376 = type { i16, i8, float, float, i16 } +%struct.point377 = type { i16, i8, float, float, i32 } +%struct.point378 = type { i16, i8, float, float, float } +%struct.point379 = type { i16, i32, i8 } +%struct.point380 = type { i16, i32, i8, i8 } +%struct.point381 = type { i16, i32, i8, i8, i8 } +%struct.point382 = type { i16, i32, i8, i8, i16 } +%struct.point383 = type { i16, i32, i8, i8, i32 } +%struct.point384 = type { i16, i32, i8, i8, float } +%struct.point385 = type { i16, i32, i8, i16 } +%struct.point386 = type { i16, i32, i8, i16, i8 } +%struct.point387 = type { i16, i32, i8, i16, i16 } +%struct.point388 = type { i16, i32, i8, i16, i32 } +%struct.point389 = type { i16, i32, i8, i16, float } +%struct.point390 = type { i16, i32, i8, i32 } +%struct.point391 = type { i16, i32, i8, i32, i8 } +%struct.point392 = type { i16, i32, i8, i32, i16 } +%struct.point393 = type { i16, i32, i8, i32, i32 } +%struct.point394 = type { i16, i32, i8, i32, float } +%struct.point395 = type { i16, i32, i8, float } +%struct.point396 = type { i16, i32, i8, float, i8 } +%struct.point397 = type { i16, i32, i8, float, i16 } +%struct.point398 = type { i16, i32, i8, float, i32 } +%struct.point399 = type { i16, i32, i8, float, float } +%struct.point400 = type { i16, i32, i16 } +%struct.point401 = type { i16, i32, i16, i8 } +%struct.point402 = type { i16, i32, i16, i8, i8 } +%struct.point403 = type { i16, i32, i16, i8, i16 } +%struct.point404 = type { i16, i32, i16, i8, i32 } +%struct.point405 = type { i16, i32, i16, i8, float } +%struct.point406 = type { i16, i32, i16, i16 } +%struct.point407 = type { i16, i32, i16, i16, i8 } +%struct.point408 = type { i16, i32, i16, i16, i16 } +%struct.point409 = type { i16, i32, i16, i16, i32 } +%struct.point410 = type { i16, i32, i16, i16, float } +%struct.point411 = type { i16, i32, i16, i32 } +%struct.point412 = type { i16, i32, i16, i32, i8 } +%struct.point413 = type { i16, i32, i16, i32, i16 } +%struct.point414 = type { i16, i32, i16, i32, i32 } +%struct.point415 = type { i16, i32, i16, i32, float } +%struct.point416 = type { i16, i32, i16, float } +%struct.point417 = type { i16, i32, i16, float, i8 } +%struct.point418 = type { i16, i32, i16, float, i16 } +%struct.point419 = type { i16, i32, i16, float, i32 } +%struct.point420 = type { i16, i32, i16, float, float } +%struct.point421 = type { i16, i32, i32 } +%struct.point422 = type { i16, i32, i32, i8 } +%struct.point423 = type { i16, i32, i32, i8, i8 } +%struct.point424 = type { i16, i32, i32, i8, i16 } +%struct.point425 = type { i16, i32, i32, i8, i32 } +%struct.point426 = type { i16, i32, i32, i8, float } +%struct.point427 = type { i16, i32, i32, i16 } +%struct.point428 = type { i16, i32, i32, i16, i8 } +%struct.point429 = type { i16, i32, i32, i16, i16 } +%struct.point430 = type { i16, i32, i32, i16, i32 } +%struct.point431 = type { i16, i32, i32, i16, float } +%struct.point432 = type { i16, i32, i32, i32 } +%struct.point433 = type { i16, i32, i32, i32, i8 } +%struct.point434 = type { i16, i32, i32, i32, i16 } +%struct.point435 = type { i16, i32, i32, i32, i32 } +%struct.point436 = type { i16, i32, i32, i32, float } +%struct.point437 = type { i16, i32, i32, float } +%struct.point438 = type { i16, i32, i32, float, i8 } +%struct.point439 = type { i16, i32, i32, float, i16 } +%struct.point440 = type { i16, i32, i32, float, i32 } +%struct.point441 = type { i16, i32, i32, float, float } +%struct.point442 = type { i16, i32, float } +%struct.point443 = type { i16, i32, float, i8 } +%struct.point444 = type { i16, i32, float, i8, i8 } +%struct.point445 = type { i16, i32, float, i8, i16 } +%struct.point446 = type { i16, i32, float, i8, i32 } +%struct.point447 = type { i16, i32, float, i8, float } +%struct.point448 = type { i16, i32, float, i16 } +%struct.point449 = type { i16, i32, float, i16, i8 } +%struct.point450 = type { i16, i32, float, i16, i16 } +%struct.point451 = type { i16, i32, float, i16, i32 } +%struct.point452 = type { i16, i32, float, i16, float } +%struct.point453 = type { i16, i32, float, i32 } +%struct.point454 = type { i16, i32, float, i32, i8 } +%struct.point455 = type { i16, i32, float, i32, i16 } +%struct.point456 = type { i16, i32, float, i32, i32 } +%struct.point457 = type { i16, i32, float, i32, float } +%struct.point458 = type { i16, i32, float, float } +%struct.point459 = type { i16, i32, float, float, i8 } +%struct.point460 = type { i16, i32, float, float, i16 } +%struct.point461 = type { i16, i32, float, float, i32 } +%struct.point462 = type { i16, i32, float, float, float } +%struct.point463 = type { i16, float, i8 } +%struct.point464 = type { i16, float, i8, i8 } +%struct.point465 = type { i16, float, i8, i8, i8 } +%struct.point466 = type { i16, float, i8, i8, i16 } +%struct.point467 = type { i16, float, i8, i8, i32 } +%struct.point468 = type { i16, float, i8, i8, float } +%struct.point469 = type { i16, float, i8, i16 } +%struct.point470 = type { i16, float, i8, i16, i8 } +%struct.point471 = type { i16, float, i8, i16, i16 } +%struct.point472 = type { i16, float, i8, i16, i32 } +%struct.point473 = type { i16, float, i8, i16, float } +%struct.point474 = type { i16, float, i8, i32 } +%struct.point475 = type { i16, float, i8, i32, i8 } +%struct.point476 = type { i16, float, i8, i32, i16 } +%struct.point477 = type { i16, float, i8, i32, i32 } +%struct.point478 = type { i16, float, i8, i32, float } +%struct.point479 = type { i16, float, i8, float } +%struct.point480 = type { i16, float, i8, float, i8 } +%struct.point481 = type { i16, float, i8, float, i16 } +%struct.point482 = type { i16, float, i8, float, i32 } +%struct.point483 = type { i16, float, i8, float, float } +%struct.point484 = type { i16, float, i16 } +%struct.point485 = type { i16, float, i16, i8 } +%struct.point486 = type { i16, float, i16, i8, i8 } +%struct.point487 = type { i16, float, i16, i8, i16 } +%struct.point488 = type { i16, float, i16, i8, i32 } +%struct.point489 = type { i16, float, i16, i8, float } +%struct.point490 = type { i16, float, i16, i16 } +%struct.point491 = type { i16, float, i16, i16, i8 } +%struct.point492 = type { i16, float, i16, i16, i16 } +%struct.point493 = type { i16, float, i16, i16, i32 } +%struct.point494 = type { i16, float, i16, i16, float } +%struct.point495 = type { i16, float, i16, i32 } +%struct.point496 = type { i16, float, i16, i32, i8 } +%struct.point497 = type { i16, float, i16, i32, i16 } +%struct.point498 = type { i16, float, i16, i32, i32 } +%struct.point499 = type { i16, float, i16, i32, float } +%struct.point500 = type { i16, float, i16, float } +%struct.point501 = type { i16, float, i16, float, i8 } +%struct.point502 = type { i16, float, i16, float, i16 } +%struct.point503 = type { i16, float, i16, float, i32 } +%struct.point504 = type { i16, float, i16, float, float } +%struct.point505 = type { i16, float, i32 } +%struct.point506 = type { i16, float, i32, i8 } +%struct.point507 = type { i16, float, i32, i8, i8 } +%struct.point508 = type { i16, float, i32, i8, i16 } +%struct.point509 = type { i16, float, i32, i8, i32 } +%struct.point510 = type { i16, float, i32, i8, float } +%struct.point511 = type { i16, float, i32, i16 } +%struct.point512 = type { i16, float, i32, i16, i8 } +%struct.point513 = type { i16, float, i32, i16, i16 } +%struct.point514 = type { i16, float, i32, i16, i32 } +%struct.point515 = type { i16, float, i32, i16, float } +%struct.point516 = type { i16, float, i32, i32 } +%struct.point517 = type { i16, float, i32, i32, i8 } +%struct.point518 = type { i16, float, i32, i32, i16 } +%struct.point519 = type { i16, float, i32, i32, i32 } +%struct.point520 = type { i16, float, i32, i32, float } +%struct.point521 = type { i16, float, i32, float } +%struct.point522 = type { i16, float, i32, float, i8 } +%struct.point523 = type { i16, float, i32, float, i16 } +%struct.point524 = type { i16, float, i32, float, i32 } +%struct.point525 = type { i16, float, i32, float, float } +%struct.point526 = type { i16, float, float } +%struct.point527 = type { i16, float, float, i8 } +%struct.point528 = type { i16, float, float, i8, i8 } +%struct.point529 = type { i16, float, float, i8, i16 } +%struct.point530 = type { i16, float, float, i8, i32 } +%struct.point531 = type { i16, float, float, i8, float } +%struct.point532 = type { i16, float, float, i16 } +%struct.point533 = type { i16, float, float, i16, i8 } +%struct.point534 = type { i16, float, float, i16, i16 } +%struct.point535 = type { i16, float, float, i16, i32 } +%struct.point536 = type { i16, float, float, i16, float } +%struct.point537 = type { i16, float, float, i32 } +%struct.point538 = type { i16, float, float, i32, i8 } +%struct.point539 = type { i16, float, float, i32, i16 } +%struct.point540 = type { i16, float, float, i32, i32 } +%struct.point541 = type { i16, float, float, i32, float } +%struct.point542 = type { i16, float, float, float } +%struct.point543 = type { i16, float, float, float, i8 } +%struct.point544 = type { i16, float, float, float, i16 } +%struct.point545 = type { i16, float, float, float, i32 } +%struct.point546 = type { i16, float, float, float, float } +%struct.point547 = type { i32, i8, i8 } +%struct.point548 = type { i32, i8, i8, i8 } +%struct.point549 = type { i32, i8, i8, i8, i8 } +%struct.point550 = type { i32, i8, i8, i8, i16 } +%struct.point551 = type { i32, i8, i8, i8, i32 } +%struct.point552 = type { i32, i8, i8, i8, float } +%struct.point553 = type { i32, i8, i8, i16 } +%struct.point554 = type { i32, i8, i8, i16, i8 } +%struct.point555 = type { i32, i8, i8, i16, i16 } +%struct.point556 = type { i32, i8, i8, i16, i32 } +%struct.point557 = type { i32, i8, i8, i16, float } +%struct.point558 = type { i32, i8, i8, i32 } +%struct.point559 = type { i32, i8, i8, i32, i8 } +%struct.point560 = type { i32, i8, i8, i32, i16 } +%struct.point561 = type { i32, i8, i8, i32, i32 } +%struct.point562 = type { i32, i8, i8, i32, float } +%struct.point563 = type { i32, i8, i8, float } +%struct.point564 = type { i32, i8, i8, float, i8 } +%struct.point565 = type { i32, i8, i8, float, i16 } +%struct.point566 = type { i32, i8, i8, float, i32 } +%struct.point567 = type { i32, i8, i8, float, float } +%struct.point568 = type { i32, i8, i16 } +%struct.point569 = type { i32, i8, i16, i8 } +%struct.point570 = type { i32, i8, i16, i8, i8 } +%struct.point571 = type { i32, i8, i16, i8, i16 } +%struct.point572 = type { i32, i8, i16, i8, i32 } +%struct.point573 = type { i32, i8, i16, i8, float } +%struct.point574 = type { i32, i8, i16, i16 } +%struct.point575 = type { i32, i8, i16, i16, i8 } +%struct.point576 = type { i32, i8, i16, i16, i16 } +%struct.point577 = type { i32, i8, i16, i16, i32 } +%struct.point578 = type { i32, i8, i16, i16, float } +%struct.point579 = type { i32, i8, i16, i32 } +%struct.point580 = type { i32, i8, i16, i32, i8 } +%struct.point581 = type { i32, i8, i16, i32, i16 } +%struct.point582 = type { i32, i8, i16, i32, i32 } +%struct.point583 = type { i32, i8, i16, i32, float } +%struct.point584 = type { i32, i8, i16, float } +%struct.point585 = type { i32, i8, i16, float, i8 } +%struct.point586 = type { i32, i8, i16, float, i16 } +%struct.point587 = type { i32, i8, i16, float, i32 } +%struct.point588 = type { i32, i8, i16, float, float } +%struct.point589 = type { i32, i8, i32 } +%struct.point590 = type { i32, i8, i32, i8 } +%struct.point591 = type { i32, i8, i32, i8, i8 } +%struct.point592 = type { i32, i8, i32, i8, i16 } +%struct.point593 = type { i32, i8, i32, i8, i32 } +%struct.point594 = type { i32, i8, i32, i8, float } +%struct.point595 = type { i32, i8, i32, i16 } +%struct.point596 = type { i32, i8, i32, i16, i8 } +%struct.point597 = type { i32, i8, i32, i16, i16 } +%struct.point598 = type { i32, i8, i32, i16, i32 } +%struct.point599 = type { i32, i8, i32, i16, float } +%struct.point600 = type { i32, i8, i32, i32 } +%struct.point601 = type { i32, i8, i32, i32, i8 } +%struct.point602 = type { i32, i8, i32, i32, i16 } +%struct.point603 = type { i32, i8, i32, i32, i32 } +%struct.point604 = type { i32, i8, i32, i32, float } +%struct.point605 = type { i32, i8, i32, float } +%struct.point606 = type { i32, i8, i32, float, i8 } +%struct.point607 = type { i32, i8, i32, float, i16 } +%struct.point608 = type { i32, i8, i32, float, i32 } +%struct.point609 = type { i32, i8, i32, float, float } +%struct.point610 = type { i32, i8, float } +%struct.point611 = type { i32, i8, float, i8 } +%struct.point612 = type { i32, i8, float, i8, i8 } +%struct.point613 = type { i32, i8, float, i8, i16 } +%struct.point614 = type { i32, i8, float, i8, i32 } +%struct.point615 = type { i32, i8, float, i8, float } +%struct.point616 = type { i32, i8, float, i16 } +%struct.point617 = type { i32, i8, float, i16, i8 } +%struct.point618 = type { i32, i8, float, i16, i16 } +%struct.point619 = type { i32, i8, float, i16, i32 } +%struct.point620 = type { i32, i8, float, i16, float } +%struct.point621 = type { i32, i8, float, i32 } +%struct.point622 = type { i32, i8, float, i32, i8 } +%struct.point623 = type { i32, i8, float, i32, i16 } +%struct.point624 = type { i32, i8, float, i32, i32 } +%struct.point625 = type { i32, i8, float, i32, float } +%struct.point626 = type { i32, i8, float, float } +%struct.point627 = type { i32, i8, float, float, i8 } +%struct.point628 = type { i32, i8, float, float, i16 } +%struct.point629 = type { i32, i8, float, float, i32 } +%struct.point630 = type { i32, i8, float, float, float } +%struct.point631 = type { i32, i16, i8 } +%struct.point632 = type { i32, i16, i8, i8 } +%struct.point633 = type { i32, i16, i8, i8, i8 } +%struct.point634 = type { i32, i16, i8, i8, i16 } +%struct.point635 = type { i32, i16, i8, i8, i32 } +%struct.point636 = type { i32, i16, i8, i8, float } +%struct.point637 = type { i32, i16, i8, i16 } +%struct.point638 = type { i32, i16, i8, i16, i8 } +%struct.point639 = type { i32, i16, i8, i16, i16 } +%struct.point640 = type { i32, i16, i8, i16, i32 } +%struct.point641 = type { i32, i16, i8, i16, float } +%struct.point642 = type { i32, i16, i8, i32 } +%struct.point643 = type { i32, i16, i8, i32, i8 } +%struct.point644 = type { i32, i16, i8, i32, i16 } +%struct.point645 = type { i32, i16, i8, i32, i32 } +%struct.point646 = type { i32, i16, i8, i32, float } +%struct.point647 = type { i32, i16, i8, float } +%struct.point648 = type { i32, i16, i8, float, i8 } +%struct.point649 = type { i32, i16, i8, float, i16 } +%struct.point650 = type { i32, i16, i8, float, i32 } +%struct.point651 = type { i32, i16, i8, float, float } +%struct.point652 = type { i32, i16, i16 } +%struct.point653 = type { i32, i16, i16, i8 } +%struct.point654 = type { i32, i16, i16, i8, i8 } +%struct.point655 = type { i32, i16, i16, i8, i16 } +%struct.point656 = type { i32, i16, i16, i8, i32 } +%struct.point657 = type { i32, i16, i16, i8, float } +%struct.point658 = type { i32, i16, i16, i16 } +%struct.point659 = type { i32, i16, i16, i16, i8 } +%struct.point660 = type { i32, i16, i16, i16, i16 } +%struct.point661 = type { i32, i16, i16, i16, i32 } +%struct.point662 = type { i32, i16, i16, i16, float } +%struct.point663 = type { i32, i16, i16, i32 } +%struct.point664 = type { i32, i16, i16, i32, i8 } +%struct.point665 = type { i32, i16, i16, i32, i16 } +%struct.point666 = type { i32, i16, i16, i32, i32 } +%struct.point667 = type { i32, i16, i16, i32, float } +%struct.point668 = type { i32, i16, i16, float } +%struct.point669 = type { i32, i16, i16, float, i8 } +%struct.point670 = type { i32, i16, i16, float, i16 } +%struct.point671 = type { i32, i16, i16, float, i32 } +%struct.point672 = type { i32, i16, i16, float, float } +%struct.point673 = type { i32, i16, i32 } +%struct.point674 = type { i32, i16, i32, i8 } +%struct.point675 = type { i32, i16, i32, i8, i8 } +%struct.point676 = type { i32, i16, i32, i8, i16 } +%struct.point677 = type { i32, i16, i32, i8, i32 } +%struct.point678 = type { i32, i16, i32, i8, float } +%struct.point679 = type { i32, i16, i32, i16 } +%struct.point680 = type { i32, i16, i32, i16, i8 } +%struct.point681 = type { i32, i16, i32, i16, i16 } +%struct.point682 = type { i32, i16, i32, i16, i32 } +%struct.point683 = type { i32, i16, i32, i16, float } +%struct.point684 = type { i32, i16, i32, i32 } +%struct.point685 = type { i32, i16, i32, i32, i8 } +%struct.point686 = type { i32, i16, i32, i32, i16 } +%struct.point687 = type { i32, i16, i32, i32, i32 } +%struct.point688 = type { i32, i16, i32, i32, float } +%struct.point689 = type { i32, i16, i32, float } +%struct.point690 = type { i32, i16, i32, float, i8 } +%struct.point691 = type { i32, i16, i32, float, i16 } +%struct.point692 = type { i32, i16, i32, float, i32 } +%struct.point693 = type { i32, i16, i32, float, float } +%struct.point694 = type { i32, i16, float } +%struct.point695 = type { i32, i16, float, i8 } +%struct.point696 = type { i32, i16, float, i8, i8 } +%struct.point697 = type { i32, i16, float, i8, i16 } +%struct.point698 = type { i32, i16, float, i8, i32 } +%struct.point699 = type { i32, i16, float, i8, float } +%struct.point700 = type { i32, i16, float, i16 } +%struct.point701 = type { i32, i16, float, i16, i8 } +%struct.point702 = type { i32, i16, float, i16, i16 } +%struct.point703 = type { i32, i16, float, i16, i32 } +%struct.point704 = type { i32, i16, float, i16, float } +%struct.point705 = type { i32, i16, float, i32 } +%struct.point706 = type { i32, i16, float, i32, i8 } +%struct.point707 = type { i32, i16, float, i32, i16 } +%struct.point708 = type { i32, i16, float, i32, i32 } +%struct.point709 = type { i32, i16, float, i32, float } +%struct.point710 = type { i32, i16, float, float } +%struct.point711 = type { i32, i16, float, float, i8 } +%struct.point712 = type { i32, i16, float, float, i16 } +%struct.point713 = type { i32, i16, float, float, i32 } +%struct.point714 = type { i32, i16, float, float, float } +%struct.point715 = type { i32, float, i8 } +%struct.point716 = type { i32, float, i8, i8 } +%struct.point717 = type { i32, float, i8, i8, i8 } +%struct.point718 = type { i32, float, i8, i8, i16 } +%struct.point719 = type { i32, float, i8, i8, i32 } +%struct.point720 = type { i32, float, i8, i8, float } +%struct.point721 = type { i32, float, i8, i16 } +%struct.point722 = type { i32, float, i8, i16, i8 } +%struct.point723 = type { i32, float, i8, i16, i16 } +%struct.point724 = type { i32, float, i8, i16, i32 } +%struct.point725 = type { i32, float, i8, i16, float } +%struct.point726 = type { i32, float, i8, i32 } +%struct.point727 = type { i32, float, i8, i32, i8 } +%struct.point728 = type { i32, float, i8, i32, i16 } +%struct.point729 = type { i32, float, i8, i32, i32 } +%struct.point730 = type { i32, float, i8, i32, float } +%struct.point731 = type { i32, float, i8, float } +%struct.point732 = type { i32, float, i8, float, i8 } +%struct.point733 = type { i32, float, i8, float, i16 } +%struct.point734 = type { i32, float, i8, float, i32 } +%struct.point735 = type { i32, float, i8, float, float } +%struct.point736 = type { i32, float, i16 } +%struct.point737 = type { i32, float, i16, i8 } +%struct.point738 = type { i32, float, i16, i8, i8 } +%struct.point739 = type { i32, float, i16, i8, i16 } +%struct.point740 = type { i32, float, i16, i8, i32 } +%struct.point741 = type { i32, float, i16, i8, float } +%struct.point742 = type { i32, float, i16, i16 } +%struct.point743 = type { i32, float, i16, i16, i8 } +%struct.point744 = type { i32, float, i16, i16, i16 } +%struct.point745 = type { i32, float, i16, i16, i32 } +%struct.point746 = type { i32, float, i16, i16, float } +%struct.point747 = type { i32, float, i16, i32 } +%struct.point748 = type { i32, float, i16, i32, i8 } +%struct.point749 = type { i32, float, i16, i32, i16 } +%struct.point750 = type { i32, float, i16, i32, i32 } +%struct.point751 = type { i32, float, i16, i32, float } +%struct.point752 = type { i32, float, i16, float } +%struct.point753 = type { i32, float, i16, float, i8 } +%struct.point754 = type { i32, float, i16, float, i16 } +%struct.point755 = type { i32, float, i16, float, i32 } +%struct.point756 = type { i32, float, i16, float, float } +%struct.point757 = type { i32, float, i32 } +%struct.point758 = type { i32, float, i32, i8 } +%struct.point759 = type { i32, float, i32, i8, i8 } +%struct.point760 = type { i32, float, i32, i8, i16 } +%struct.point761 = type { i32, float, i32, i8, i32 } +%struct.point762 = type { i32, float, i32, i8, float } +%struct.point763 = type { i32, float, i32, i16 } +%struct.point764 = type { i32, float, i32, i16, i8 } +%struct.point765 = type { i32, float, i32, i16, i16 } +%struct.point766 = type { i32, float, i32, i16, i32 } +%struct.point767 = type { i32, float, i32, i16, float } +%struct.point768 = type { i32, float, i32, i32 } +%struct.point769 = type { i32, float, i32, i32, i8 } +%struct.point770 = type { i32, float, i32, i32, i16 } +%struct.point771 = type { i32, float, i32, i32, i32 } +%struct.point772 = type { i32, float, i32, i32, float } +%struct.point773 = type { i32, float, i32, float } +%struct.point774 = type { i32, float, i32, float, i8 } +%struct.point775 = type { i32, float, i32, float, i16 } +%struct.point776 = type { i32, float, i32, float, i32 } +%struct.point777 = type { i32, float, i32, float, float } +%struct.point778 = type { i32, float, float } +%struct.point779 = type { i32, float, float, i8 } +%struct.point780 = type { i32, float, float, i8, i8 } +%struct.point781 = type { i32, float, float, i8, i16 } +%struct.point782 = type { i32, float, float, i8, i32 } +%struct.point783 = type { i32, float, float, i8, float } +%struct.point784 = type { i32, float, float, i16 } +%struct.point785 = type { i32, float, float, i16, i8 } +%struct.point786 = type { i32, float, float, i16, i16 } +%struct.point787 = type { i32, float, float, i16, i32 } +%struct.point788 = type { i32, float, float, i16, float } +%struct.point789 = type { i32, float, float, i32 } +%struct.point790 = type { i32, float, float, i32, i8 } +%struct.point791 = type { i32, float, float, i32, i16 } +%struct.point792 = type { i32, float, float, i32, i32 } +%struct.point793 = type { i32, float, float, i32, float } +%struct.point794 = type { i32, float, float, float } +%struct.point795 = type { i32, float, float, float, i8 } +%struct.point796 = type { i32, float, float, float, i16 } +%struct.point797 = type { i32, float, float, float, i32 } +%struct.point798 = type { i32, float, float, float, float } +%struct.point799 = type { float, i8, i8 } +%struct.point800 = type { float, i8, i8, i8 } +%struct.point801 = type { float, i8, i8, i8, i8 } +%struct.point802 = type { float, i8, i8, i8, i16 } +%struct.point803 = type { float, i8, i8, i8, i32 } +%struct.point804 = type { float, i8, i8, i8, float } +%struct.point805 = type { float, i8, i8, i16 } +%struct.point806 = type { float, i8, i8, i16, i8 } +%struct.point807 = type { float, i8, i8, i16, i16 } +%struct.point808 = type { float, i8, i8, i16, i32 } +%struct.point809 = type { float, i8, i8, i16, float } +%struct.point810 = type { float, i8, i8, i32 } +%struct.point811 = type { float, i8, i8, i32, i8 } +%struct.point812 = type { float, i8, i8, i32, i16 } +%struct.point813 = type { float, i8, i8, i32, i32 } +%struct.point814 = type { float, i8, i8, i32, float } +%struct.point815 = type { float, i8, i8, float } +%struct.point816 = type { float, i8, i8, float, i8 } +%struct.point817 = type { float, i8, i8, float, i16 } +%struct.point818 = type { float, i8, i8, float, i32 } +%struct.point819 = type { float, i8, i8, float, float } +%struct.point820 = type { float, i8, i16 } +%struct.point821 = type { float, i8, i16, i8 } +%struct.point822 = type { float, i8, i16, i8, i8 } +%struct.point823 = type { float, i8, i16, i8, i16 } +%struct.point824 = type { float, i8, i16, i8, i32 } +%struct.point825 = type { float, i8, i16, i8, float } +%struct.point826 = type { float, i8, i16, i16 } +%struct.point827 = type { float, i8, i16, i16, i8 } +%struct.point828 = type { float, i8, i16, i16, i16 } +%struct.point829 = type { float, i8, i16, i16, i32 } +%struct.point830 = type { float, i8, i16, i16, float } +%struct.point831 = type { float, i8, i16, i32 } +%struct.point832 = type { float, i8, i16, i32, i8 } +%struct.point833 = type { float, i8, i16, i32, i16 } +%struct.point834 = type { float, i8, i16, i32, i32 } +%struct.point835 = type { float, i8, i16, i32, float } +%struct.point836 = type { float, i8, i16, float } +%struct.point837 = type { float, i8, i16, float, i8 } +%struct.point838 = type { float, i8, i16, float, i16 } +%struct.point839 = type { float, i8, i16, float, i32 } +%struct.point840 = type { float, i8, i16, float, float } +%struct.point841 = type { float, i8, i32 } +%struct.point842 = type { float, i8, i32, i8 } +%struct.point843 = type { float, i8, i32, i8, i8 } +%struct.point844 = type { float, i8, i32, i8, i16 } +%struct.point845 = type { float, i8, i32, i8, i32 } +%struct.point846 = type { float, i8, i32, i8, float } +%struct.point847 = type { float, i8, i32, i16 } +%struct.point848 = type { float, i8, i32, i16, i8 } +%struct.point849 = type { float, i8, i32, i16, i16 } +%struct.point850 = type { float, i8, i32, i16, i32 } +%struct.point851 = type { float, i8, i32, i16, float } +%struct.point852 = type { float, i8, i32, i32 } +%struct.point853 = type { float, i8, i32, i32, i8 } +%struct.point854 = type { float, i8, i32, i32, i16 } +%struct.point855 = type { float, i8, i32, i32, i32 } +%struct.point856 = type { float, i8, i32, i32, float } +%struct.point857 = type { float, i8, i32, float } +%struct.point858 = type { float, i8, i32, float, i8 } +%struct.point859 = type { float, i8, i32, float, i16 } +%struct.point860 = type { float, i8, i32, float, i32 } +%struct.point861 = type { float, i8, i32, float, float } +%struct.point862 = type { float, i8, float } +%struct.point863 = type { float, i8, float, i8 } +%struct.point864 = type { float, i8, float, i8, i8 } +%struct.point865 = type { float, i8, float, i8, i16 } +%struct.point866 = type { float, i8, float, i8, i32 } +%struct.point867 = type { float, i8, float, i8, float } +%struct.point868 = type { float, i8, float, i16 } +%struct.point869 = type { float, i8, float, i16, i8 } +%struct.point870 = type { float, i8, float, i16, i16 } +%struct.point871 = type { float, i8, float, i16, i32 } +%struct.point872 = type { float, i8, float, i16, float } +%struct.point873 = type { float, i8, float, i32 } +%struct.point874 = type { float, i8, float, i32, i8 } +%struct.point875 = type { float, i8, float, i32, i16 } +%struct.point876 = type { float, i8, float, i32, i32 } +%struct.point877 = type { float, i8, float, i32, float } +%struct.point878 = type { float, i8, float, float } +%struct.point879 = type { float, i8, float, float, i8 } +%struct.point880 = type { float, i8, float, float, i16 } +%struct.point881 = type { float, i8, float, float, i32 } +%struct.point882 = type { float, i8, float, float, float } +%struct.point883 = type { float, i16, i8 } +%struct.point884 = type { float, i16, i8, i8 } +%struct.point885 = type { float, i16, i8, i8, i8 } +%struct.point886 = type { float, i16, i8, i8, i16 } +%struct.point887 = type { float, i16, i8, i8, i32 } +%struct.point888 = type { float, i16, i8, i8, float } +%struct.point889 = type { float, i16, i8, i16 } +%struct.point890 = type { float, i16, i8, i16, i8 } +%struct.point891 = type { float, i16, i8, i16, i16 } +%struct.point892 = type { float, i16, i8, i16, i32 } +%struct.point893 = type { float, i16, i8, i16, float } +%struct.point894 = type { float, i16, i8, i32 } +%struct.point895 = type { float, i16, i8, i32, i8 } +%struct.point896 = type { float, i16, i8, i32, i16 } +%struct.point897 = type { float, i16, i8, i32, i32 } +%struct.point898 = type { float, i16, i8, i32, float } +%struct.point899 = type { float, i16, i8, float } +%struct.point900 = type { float, i16, i8, float, i8 } +%struct.point901 = type { float, i16, i8, float, i16 } +%struct.point902 = type { float, i16, i8, float, i32 } +%struct.point903 = type { float, i16, i8, float, float } +%struct.point904 = type { float, i16, i16 } +%struct.point905 = type { float, i16, i16, i8 } +%struct.point906 = type { float, i16, i16, i8, i8 } +%struct.point907 = type { float, i16, i16, i8, i16 } +%struct.point908 = type { float, i16, i16, i8, i32 } +%struct.point909 = type { float, i16, i16, i8, float } +%struct.point910 = type { float, i16, i16, i16 } +%struct.point911 = type { float, i16, i16, i16, i8 } +%struct.point912 = type { float, i16, i16, i16, i16 } +%struct.point913 = type { float, i16, i16, i16, i32 } +%struct.point914 = type { float, i16, i16, i16, float } +%struct.point915 = type { float, i16, i16, i32 } +%struct.point916 = type { float, i16, i16, i32, i8 } +%struct.point917 = type { float, i16, i16, i32, i16 } +%struct.point918 = type { float, i16, i16, i32, i32 } +%struct.point919 = type { float, i16, i16, i32, float } +%struct.point920 = type { float, i16, i16, float } +%struct.point921 = type { float, i16, i16, float, i8 } +%struct.point922 = type { float, i16, i16, float, i16 } +%struct.point923 = type { float, i16, i16, float, i32 } +%struct.point924 = type { float, i16, i16, float, float } +%struct.point925 = type { float, i16, i32 } +%struct.point926 = type { float, i16, i32, i8 } +%struct.point927 = type { float, i16, i32, i8, i8 } +%struct.point928 = type { float, i16, i32, i8, i16 } +%struct.point929 = type { float, i16, i32, i8, i32 } +%struct.point930 = type { float, i16, i32, i8, float } +%struct.point931 = type { float, i16, i32, i16 } +%struct.point932 = type { float, i16, i32, i16, i8 } +%struct.point933 = type { float, i16, i32, i16, i16 } +%struct.point934 = type { float, i16, i32, i16, i32 } +%struct.point935 = type { float, i16, i32, i16, float } +%struct.point936 = type { float, i16, i32, i32 } +%struct.point937 = type { float, i16, i32, i32, i8 } +%struct.point938 = type { float, i16, i32, i32, i16 } +%struct.point939 = type { float, i16, i32, i32, i32 } +%struct.point940 = type { float, i16, i32, i32, float } +%struct.point941 = type { float, i16, i32, float } +%struct.point942 = type { float, i16, i32, float, i8 } +%struct.point943 = type { float, i16, i32, float, i16 } +%struct.point944 = type { float, i16, i32, float, i32 } +%struct.point945 = type { float, i16, i32, float, float } +%struct.point946 = type { float, i16, float } +%struct.point947 = type { float, i16, float, i8 } +%struct.point948 = type { float, i16, float, i8, i8 } +%struct.point949 = type { float, i16, float, i8, i16 } +%struct.point950 = type { float, i16, float, i8, i32 } +%struct.point951 = type { float, i16, float, i8, float } +%struct.point952 = type { float, i16, float, i16 } +%struct.point953 = type { float, i16, float, i16, i8 } +%struct.point954 = type { float, i16, float, i16, i16 } +%struct.point955 = type { float, i16, float, i16, i32 } +%struct.point956 = type { float, i16, float, i16, float } +%struct.point957 = type { float, i16, float, i32 } +%struct.point958 = type { float, i16, float, i32, i8 } +%struct.point959 = type { float, i16, float, i32, i16 } +%struct.point960 = type { float, i16, float, i32, i32 } +%struct.point961 = type { float, i16, float, i32, float } +%struct.point962 = type { float, i16, float, float } +%struct.point963 = type { float, i16, float, float, i8 } +%struct.point964 = type { float, i16, float, float, i16 } +%struct.point965 = type { float, i16, float, float, i32 } +%struct.point966 = type { float, i16, float, float, float } +%struct.point967 = type { float, i32, i8 } +%struct.point968 = type { float, i32, i8, i8 } +%struct.point969 = type { float, i32, i8, i8, i8 } +%struct.point970 = type { float, i32, i8, i8, i16 } +%struct.point971 = type { float, i32, i8, i8, i32 } +%struct.point972 = type { float, i32, i8, i8, float } +%struct.point973 = type { float, i32, i8, i16 } +%struct.point974 = type { float, i32, i8, i16, i8 } +%struct.point975 = type { float, i32, i8, i16, i16 } +%struct.point976 = type { float, i32, i8, i16, i32 } +%struct.point977 = type { float, i32, i8, i16, float } +%struct.point978 = type { float, i32, i8, i32 } +%struct.point979 = type { float, i32, i8, i32, i8 } +%struct.point980 = type { float, i32, i8, i32, i16 } +%struct.point981 = type { float, i32, i8, i32, i32 } +%struct.point982 = type { float, i32, i8, i32, float } +%struct.point983 = type { float, i32, i8, float } +%struct.point984 = type { float, i32, i8, float, i8 } +%struct.point985 = type { float, i32, i8, float, i16 } +%struct.point986 = type { float, i32, i8, float, i32 } +%struct.point987 = type { float, i32, i8, float, float } +%struct.point988 = type { float, i32, i16 } +%struct.point989 = type { float, i32, i16, i8 } +%struct.point990 = type { float, i32, i16, i8, i8 } +%struct.point991 = type { float, i32, i16, i8, i16 } +%struct.point992 = type { float, i32, i16, i8, i32 } +%struct.point993 = type { float, i32, i16, i8, float } +%struct.point994 = type { float, i32, i16, i16 } +%struct.point995 = type { float, i32, i16, i16, i8 } +%struct.point996 = type { float, i32, i16, i16, i16 } +%struct.point997 = type { float, i32, i16, i16, i32 } +%struct.point998 = type { float, i32, i16, i16, float } +%struct.point999 = type { float, i32, i16, i32 } +%struct.point1000 = type { float, i32, i16, i32, i8 } +%struct.point1001 = type { float, i32, i16, i32, i16 } +%struct.point1002 = type { float, i32, i16, i32, i32 } +%struct.point1003 = type { float, i32, i16, i32, float } +%struct.point1004 = type { float, i32, i16, float } +%struct.point1005 = type { float, i32, i16, float, i8 } +%struct.point1006 = type { float, i32, i16, float, i16 } +%struct.point1007 = type { float, i32, i16, float, i32 } +%struct.point1008 = type { float, i32, i16, float, float } +%struct.point1009 = type { float, i32, i32 } +%struct.point1010 = type { float, i32, i32, i8 } +%struct.point1011 = type { float, i32, i32, i8, i8 } +%struct.point1012 = type { float, i32, i32, i8, i16 } +%struct.point1013 = type { float, i32, i32, i8, i32 } +%struct.point1014 = type { float, i32, i32, i8, float } +%struct.point1015 = type { float, i32, i32, i16 } +%struct.point1016 = type { float, i32, i32, i16, i8 } +%struct.point1017 = type { float, i32, i32, i16, i16 } +%struct.point1018 = type { float, i32, i32, i16, i32 } +%struct.point1019 = type { float, i32, i32, i16, float } +%struct.point1020 = type { float, i32, i32, i32 } +%struct.point1021 = type { float, i32, i32, i32, i8 } +%struct.point1022 = type { float, i32, i32, i32, i16 } +%struct.point1023 = type { float, i32, i32, i32, i32 } +%struct.point1024 = type { float, i32, i32, i32, float } +%struct.point1025 = type { float, i32, i32, float } +%struct.point1026 = type { float, i32, i32, float, i8 } +%struct.point1027 = type { float, i32, i32, float, i16 } +%struct.point1028 = type { float, i32, i32, float, i32 } +%struct.point1029 = type { float, i32, i32, float, float } +%struct.point1030 = type { float, i32, float } +%struct.point1031 = type { float, i32, float, i8 } +%struct.point1032 = type { float, i32, float, i8, i8 } +%struct.point1033 = type { float, i32, float, i8, i16 } +%struct.point1034 = type { float, i32, float, i8, i32 } +%struct.point1035 = type { float, i32, float, i8, float } +%struct.point1036 = type { float, i32, float, i16 } +%struct.point1037 = type { float, i32, float, i16, i8 } +%struct.point1038 = type { float, i32, float, i16, i16 } +%struct.point1039 = type { float, i32, float, i16, i32 } +%struct.point1040 = type { float, i32, float, i16, float } +%struct.point1041 = type { float, i32, float, i32 } +%struct.point1042 = type { float, i32, float, i32, i8 } +%struct.point1043 = type { float, i32, float, i32, i16 } +%struct.point1044 = type { float, i32, float, i32, i32 } +%struct.point1045 = type { float, i32, float, i32, float } +%struct.point1046 = type { float, i32, float, float } +%struct.point1047 = type { float, i32, float, float, i8 } +%struct.point1048 = type { float, i32, float, float, i16 } +%struct.point1049 = type { float, i32, float, float, i32 } +%struct.point1050 = type { float, i32, float, float, float } + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1(%struct.point1* noalias sret(%struct.point1) align 2 %0, %struct.point1* noundef byval(%struct.point1) align 2 %1) #0 { + %3 = bitcast %struct.point1* %0 to i8* + %4 = bitcast %struct.point1* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 4, i1 false) + ret void +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 8 %0, %struct.point3* noundef byval(%struct.point3) align 8 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 8 %0, %struct.point5* noundef byval(%struct.point5) align 8 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 2 %0, %struct.point7* noundef byval(%struct.point7) align 2 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 8 %0, %struct.point9* noundef byval(%struct.point9) align 8 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 8 %0, %struct.point11* noundef byval(%struct.point11) align 8 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 8 %0, %struct.point15* noundef byval(%struct.point15) align 8 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 8 %0, %struct.point17* noundef byval(%struct.point17) align 8 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 8 %0, %struct.point19* noundef byval(%struct.point19) align 8 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 8 %0, %struct.point20* noundef byval(%struct.point20) align 8 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo21(%struct.point21* noalias sret(%struct.point21) align 8 %0, %struct.point21* noundef byval(%struct.point21) align 8 %1) #0 { + %3 = bitcast %struct.point21* %0 to i8* + %4 = bitcast %struct.point21* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo22(%struct.point22* noalias sret(%struct.point22) align 8 %0, %struct.point22* noundef byval(%struct.point22) align 8 %1) #0 { + %3 = bitcast %struct.point22* %0 to i8* + %4 = bitcast %struct.point22* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo23(%struct.point23* noalias sret(%struct.point23) align 8 %0, %struct.point23* noundef byval(%struct.point23) align 8 %1) #0 { + %3 = bitcast %struct.point23* %0 to i8* + %4 = bitcast %struct.point23* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo24(%struct.point24* noalias sret(%struct.point24) align 8 %0, %struct.point24* noundef byval(%struct.point24) align 8 %1) #0 { + %3 = bitcast %struct.point24* %0 to i8* + %4 = bitcast %struct.point24* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo25(%struct.point25* noalias sret(%struct.point25) align 4 %0, %struct.point25* noundef byval(%struct.point25) align 4 %1) #0 { + %3 = bitcast %struct.point25* %0 to i8* + %4 = bitcast %struct.point25* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo26(%struct.point26* noalias sret(%struct.point26) align 4 %0, %struct.point26* noundef byval(%struct.point26) align 4 %1) #0 { + %3 = bitcast %struct.point26* %0 to i8* + %4 = bitcast %struct.point26* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo27(%struct.point27* noalias sret(%struct.point27) align 4 %0, %struct.point27* noundef byval(%struct.point27) align 4 %1) #0 { + %3 = bitcast %struct.point27* %0 to i8* + %4 = bitcast %struct.point27* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo28(%struct.point28* noalias sret(%struct.point28) align 8 %0, %struct.point28* noundef byval(%struct.point28) align 8 %1) #0 { + %3 = bitcast %struct.point28* %0 to i8* + %4 = bitcast %struct.point28* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo29(%struct.point29* noalias sret(%struct.point29) align 8 %0, %struct.point29* noundef byval(%struct.point29) align 8 %1) #0 { + %3 = bitcast %struct.point29* %0 to i8* + %4 = bitcast %struct.point29* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo30(%struct.point30* noalias sret(%struct.point30) align 4 %0, %struct.point30* noundef byval(%struct.point30) align 4 %1) #0 { + %3 = bitcast %struct.point30* %0 to i8* + %4 = bitcast %struct.point30* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo31(%struct.point31* noalias sret(%struct.point31) align 8 %0, %struct.point31* noundef byval(%struct.point31) align 8 %1) #0 { + %3 = bitcast %struct.point31* %0 to i8* + %4 = bitcast %struct.point31* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo32(%struct.point32* noalias sret(%struct.point32) align 8 %0, %struct.point32* noundef byval(%struct.point32) align 8 %1) #0 { + %3 = bitcast %struct.point32* %0 to i8* + %4 = bitcast %struct.point32* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo33(%struct.point33* noalias sret(%struct.point33) align 8 %0, %struct.point33* noundef byval(%struct.point33) align 8 %1) #0 { + %3 = bitcast %struct.point33* %0 to i8* + %4 = bitcast %struct.point33* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo34(%struct.point34* noalias sret(%struct.point34) align 8 %0, %struct.point34* noundef byval(%struct.point34) align 8 %1) #0 { + %3 = bitcast %struct.point34* %0 to i8* + %4 = bitcast %struct.point34* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo35(%struct.point35* noalias sret(%struct.point35) align 8 %0, %struct.point35* noundef byval(%struct.point35) align 8 %1) #0 { + %3 = bitcast %struct.point35* %0 to i8* + %4 = bitcast %struct.point35* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo36(%struct.point36* noalias sret(%struct.point36) align 8 %0, %struct.point36* noundef byval(%struct.point36) align 8 %1) #0 { + %3 = bitcast %struct.point36* %0 to i8* + %4 = bitcast %struct.point36* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo37(%struct.point37* noalias sret(%struct.point37) align 4 %0, %struct.point37* noundef byval(%struct.point37) align 4 %1) #0 { + %3 = bitcast %struct.point37* %0 to i8* + %4 = bitcast %struct.point37* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo38(%struct.point38* noalias sret(%struct.point38) align 4 %0, %struct.point38* noundef byval(%struct.point38) align 4 %1) #0 { + %3 = bitcast %struct.point38* %0 to i8* + %4 = bitcast %struct.point38* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo39(%struct.point39* noalias sret(%struct.point39) align 4 %0, %struct.point39* noundef byval(%struct.point39) align 4 %1) #0 { + %3 = bitcast %struct.point39* %0 to i8* + %4 = bitcast %struct.point39* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo40(%struct.point40* noalias sret(%struct.point40) align 8 %0, %struct.point40* noundef byval(%struct.point40) align 8 %1) #0 { + %3 = bitcast %struct.point40* %0 to i8* + %4 = bitcast %struct.point40* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo41(%struct.point41* noalias sret(%struct.point41) align 4 %0, %struct.point41* noundef byval(%struct.point41) align 4 %1) #0 { + %3 = bitcast %struct.point41* %0 to i8* + %4 = bitcast %struct.point41* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo42(%struct.point42* noalias sret(%struct.point42) align 8 %0, %struct.point42* noundef byval(%struct.point42) align 8 %1) #0 { + %3 = bitcast %struct.point42* %0 to i8* + %4 = bitcast %struct.point42* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %3, i8* align 8 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo43(%struct.point43* noalias sret(%struct.point43) align 2 %0, %struct.point43* noundef byval(%struct.point43) align 2 %1) #0 { + %3 = bitcast %struct.point43* %0 to i8* + %4 = bitcast %struct.point43* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo44(%struct.point44* noalias sret(%struct.point44) align 2 %0, %struct.point44* noundef byval(%struct.point44) align 2 %1) #0 { + %3 = bitcast %struct.point44* %0 to i8* + %4 = bitcast %struct.point44* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo45(%struct.point45* noalias sret(%struct.point45) align 2 %0, %struct.point45* noundef byval(%struct.point45) align 2 %1) #0 { + %3 = bitcast %struct.point45* %0 to i8* + %4 = bitcast %struct.point45* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo46(%struct.point46* noalias sret(%struct.point46) align 2 %0, %struct.point46* noundef byval(%struct.point46) align 2 %1) #0 { + %3 = bitcast %struct.point46* %0 to i8* + %4 = bitcast %struct.point46* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo47(%struct.point47* noalias sret(%struct.point47) align 4 %0, %struct.point47* noundef byval(%struct.point47) align 4 %1) #0 { + %3 = bitcast %struct.point47* %0 to i8* + %4 = bitcast %struct.point47* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo48(%struct.point48* noalias sret(%struct.point48) align 4 %0, %struct.point48* noundef byval(%struct.point48) align 4 %1) #0 { + %3 = bitcast %struct.point48* %0 to i8* + %4 = bitcast %struct.point48* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo49(%struct.point49* noalias sret(%struct.point49) align 2 %0, %struct.point49* noundef byval(%struct.point49) align 2 %1) #0 { + %3 = bitcast %struct.point49* %0 to i8* + %4 = bitcast %struct.point49* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo50(%struct.point50* noalias sret(%struct.point50) align 2 %0, %struct.point50* noundef byval(%struct.point50) align 2 %1) #0 { + %3 = bitcast %struct.point50* %0 to i8* + %4 = bitcast %struct.point50* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo51(%struct.point51* noalias sret(%struct.point51) align 2 %0, %struct.point51* noundef byval(%struct.point51) align 2 %1) #0 { + %3 = bitcast %struct.point51* %0 to i8* + %4 = bitcast %struct.point51* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo52(%struct.point52* noalias sret(%struct.point52) align 4 %0, %struct.point52* noundef byval(%struct.point52) align 4 %1) #0 { + %3 = bitcast %struct.point52* %0 to i8* + %4 = bitcast %struct.point52* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo53(%struct.point53* noalias sret(%struct.point53) align 4 %0, %struct.point53* noundef byval(%struct.point53) align 4 %1) #0 { + %3 = bitcast %struct.point53* %0 to i8* + %4 = bitcast %struct.point53* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo54(%struct.point54* noalias sret(%struct.point54) align 4 %0, %struct.point54* noundef byval(%struct.point54) align 4 %1) #0 { + %3 = bitcast %struct.point54* %0 to i8* + %4 = bitcast %struct.point54* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo55(%struct.point55* noalias sret(%struct.point55) align 4 %0, %struct.point55* noundef byval(%struct.point55) align 4 %1) #0 { + %3 = bitcast %struct.point55* %0 to i8* + %4 = bitcast %struct.point55* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo56(%struct.point56* noalias sret(%struct.point56) align 4 %0, %struct.point56* noundef byval(%struct.point56) align 4 %1) #0 { + %3 = bitcast %struct.point56* %0 to i8* + %4 = bitcast %struct.point56* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo57(%struct.point57* noalias sret(%struct.point57) align 4 %0, %struct.point57* noundef byval(%struct.point57) align 4 %1) #0 { + %3 = bitcast %struct.point57* %0 to i8* + %4 = bitcast %struct.point57* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo58(%struct.point58* noalias sret(%struct.point58) align 4 %0, %struct.point58* noundef byval(%struct.point58) align 4 %1) #0 { + %3 = bitcast %struct.point58* %0 to i8* + %4 = bitcast %struct.point58* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo59(%struct.point59* noalias sret(%struct.point59) align 4 %0, %struct.point59* noundef byval(%struct.point59) align 4 %1) #0 { + %3 = bitcast %struct.point59* %0 to i8* + %4 = bitcast %struct.point59* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo60(%struct.point60* noalias sret(%struct.point60) align 4 %0, %struct.point60* noundef byval(%struct.point60) align 4 %1) #0 { + %3 = bitcast %struct.point60* %0 to i8* + %4 = bitcast %struct.point60* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo61(%struct.point61* noalias sret(%struct.point61) align 4 %0, %struct.point61* noundef byval(%struct.point61) align 4 %1) #0 { + %3 = bitcast %struct.point61* %0 to i8* + %4 = bitcast %struct.point61* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo62(%struct.point62* noalias sret(%struct.point62) align 4 %0, %struct.point62* noundef byval(%struct.point62) align 4 %1) #0 { + %3 = bitcast %struct.point62* %0 to i8* + %4 = bitcast %struct.point62* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo63(%struct.point63* noalias sret(%struct.point63) align 4 %0, %struct.point63* noundef byval(%struct.point63) align 4 %1) #0 { + %3 = bitcast %struct.point63* %0 to i8* + %4 = bitcast %struct.point63* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo64(%struct.point64* noalias sret(%struct.point64) align 2 %0, %struct.point64* noundef byval(%struct.point64) align 2 %1) #0 { + %3 = bitcast %struct.point64* %0 to i8* + %4 = bitcast %struct.point64* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo65(%struct.point65* noalias sret(%struct.point65) align 2 %0, %struct.point65* noundef byval(%struct.point65) align 2 %1) #0 { + %3 = bitcast %struct.point65* %0 to i8* + %4 = bitcast %struct.point65* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo66(%struct.point66* noalias sret(%struct.point66) align 2 %0, %struct.point66* noundef byval(%struct.point66) align 2 %1) #0 { + %3 = bitcast %struct.point66* %0 to i8* + %4 = bitcast %struct.point66* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo67(%struct.point67* noalias sret(%struct.point67) align 2 %0, %struct.point67* noundef byval(%struct.point67) align 2 %1) #0 { + %3 = bitcast %struct.point67* %0 to i8* + %4 = bitcast %struct.point67* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo68(%struct.point68* noalias sret(%struct.point68) align 4 %0, %struct.point68* noundef byval(%struct.point68) align 4 %1) #0 { + %3 = bitcast %struct.point68* %0 to i8* + %4 = bitcast %struct.point68* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo69(%struct.point69* noalias sret(%struct.point69) align 4 %0, %struct.point69* noundef byval(%struct.point69) align 4 %1) #0 { + %3 = bitcast %struct.point69* %0 to i8* + %4 = bitcast %struct.point69* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo70(%struct.point70* noalias sret(%struct.point70) align 2 %0, %struct.point70* noundef byval(%struct.point70) align 2 %1) #0 { + %3 = bitcast %struct.point70* %0 to i8* + %4 = bitcast %struct.point70* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo71(%struct.point71* noalias sret(%struct.point71) align 2 %0, %struct.point71* noundef byval(%struct.point71) align 2 %1) #0 { + %3 = bitcast %struct.point71* %0 to i8* + %4 = bitcast %struct.point71* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo72(%struct.point72* noalias sret(%struct.point72) align 2 %0, %struct.point72* noundef byval(%struct.point72) align 2 %1) #0 { + %3 = bitcast %struct.point72* %0 to i8* + %4 = bitcast %struct.point72* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo73(%struct.point73* noalias sret(%struct.point73) align 4 %0, %struct.point73* noundef byval(%struct.point73) align 4 %1) #0 { + %3 = bitcast %struct.point73* %0 to i8* + %4 = bitcast %struct.point73* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo74(%struct.point74* noalias sret(%struct.point74) align 4 %0, %struct.point74* noundef byval(%struct.point74) align 4 %1) #0 { + %3 = bitcast %struct.point74* %0 to i8* + %4 = bitcast %struct.point74* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo75(%struct.point75* noalias sret(%struct.point75) align 4 %0, %struct.point75* noundef byval(%struct.point75) align 4 %1) #0 { + %3 = bitcast %struct.point75* %0 to i8* + %4 = bitcast %struct.point75* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo76(%struct.point76* noalias sret(%struct.point76) align 4 %0, %struct.point76* noundef byval(%struct.point76) align 4 %1) #0 { + %3 = bitcast %struct.point76* %0 to i8* + %4 = bitcast %struct.point76* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo77(%struct.point77* noalias sret(%struct.point77) align 4 %0, %struct.point77* noundef byval(%struct.point77) align 4 %1) #0 { + %3 = bitcast %struct.point77* %0 to i8* + %4 = bitcast %struct.point77* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo78(%struct.point78* noalias sret(%struct.point78) align 4 %0, %struct.point78* noundef byval(%struct.point78) align 4 %1) #0 { + %3 = bitcast %struct.point78* %0 to i8* + %4 = bitcast %struct.point78* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo79(%struct.point79* noalias sret(%struct.point79) align 4 %0, %struct.point79* noundef byval(%struct.point79) align 4 %1) #0 { + %3 = bitcast %struct.point79* %0 to i8* + %4 = bitcast %struct.point79* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo80(%struct.point80* noalias sret(%struct.point80) align 4 %0, %struct.point80* noundef byval(%struct.point80) align 4 %1) #0 { + %3 = bitcast %struct.point80* %0 to i8* + %4 = bitcast %struct.point80* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo81(%struct.point81* noalias sret(%struct.point81) align 4 %0, %struct.point81* noundef byval(%struct.point81) align 4 %1) #0 { + %3 = bitcast %struct.point81* %0 to i8* + %4 = bitcast %struct.point81* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo82(%struct.point82* noalias sret(%struct.point82) align 4 %0, %struct.point82* noundef byval(%struct.point82) align 4 %1) #0 { + %3 = bitcast %struct.point82* %0 to i8* + %4 = bitcast %struct.point82* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo83(%struct.point83* noalias sret(%struct.point83) align 4 %0, %struct.point83* noundef byval(%struct.point83) align 4 %1) #0 { + %3 = bitcast %struct.point83* %0 to i8* + %4 = bitcast %struct.point83* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo84(%struct.point84* noalias sret(%struct.point84) align 4 %0, %struct.point84* noundef byval(%struct.point84) align 4 %1) #0 { + %3 = bitcast %struct.point84* %0 to i8* + %4 = bitcast %struct.point84* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo85(%struct.point85* noalias sret(%struct.point85) align 4 %0, %struct.point85* noundef byval(%struct.point85) align 4 %1) #0 { + %3 = bitcast %struct.point85* %0 to i8* + %4 = bitcast %struct.point85* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo86(%struct.point86* noalias sret(%struct.point86) align 4 %0, %struct.point86* noundef byval(%struct.point86) align 4 %1) #0 { + %3 = bitcast %struct.point86* %0 to i8* + %4 = bitcast %struct.point86* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo87(%struct.point87* noalias sret(%struct.point87) align 4 %0, %struct.point87* noundef byval(%struct.point87) align 4 %1) #0 { + %3 = bitcast %struct.point87* %0 to i8* + %4 = bitcast %struct.point87* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo88(%struct.point88* noalias sret(%struct.point88) align 4 %0, %struct.point88* noundef byval(%struct.point88) align 4 %1) #0 { + %3 = bitcast %struct.point88* %0 to i8* + %4 = bitcast %struct.point88* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo89(%struct.point89* noalias sret(%struct.point89) align 4 %0, %struct.point89* noundef byval(%struct.point89) align 4 %1) #0 { + %3 = bitcast %struct.point89* %0 to i8* + %4 = bitcast %struct.point89* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo90(%struct.point90* noalias sret(%struct.point90) align 4 %0, %struct.point90* noundef byval(%struct.point90) align 4 %1) #0 { + %3 = bitcast %struct.point90* %0 to i8* + %4 = bitcast %struct.point90* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo91(%struct.point91* noalias sret(%struct.point91) align 4 %0, %struct.point91* noundef byval(%struct.point91) align 4 %1) #0 { + %3 = bitcast %struct.point91* %0 to i8* + %4 = bitcast %struct.point91* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo92(%struct.point92* noalias sret(%struct.point92) align 4 %0, %struct.point92* noundef byval(%struct.point92) align 4 %1) #0 { + %3 = bitcast %struct.point92* %0 to i8* + %4 = bitcast %struct.point92* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo93(%struct.point93* noalias sret(%struct.point93) align 4 %0, %struct.point93* noundef byval(%struct.point93) align 4 %1) #0 { + %3 = bitcast %struct.point93* %0 to i8* + %4 = bitcast %struct.point93* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo94(%struct.point94* noalias sret(%struct.point94) align 4 %0, %struct.point94* noundef byval(%struct.point94) align 4 %1) #0 { + %3 = bitcast %struct.point94* %0 to i8* + %4 = bitcast %struct.point94* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo95(%struct.point95* noalias sret(%struct.point95) align 4 %0, %struct.point95* noundef byval(%struct.point95) align 4 %1) #0 { + %3 = bitcast %struct.point95* %0 to i8* + %4 = bitcast %struct.point95* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo96(%struct.point96* noalias sret(%struct.point96) align 4 %0, %struct.point96* noundef byval(%struct.point96) align 4 %1) #0 { + %3 = bitcast %struct.point96* %0 to i8* + %4 = bitcast %struct.point96* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo97(%struct.point97* noalias sret(%struct.point97) align 4 %0, %struct.point97* noundef byval(%struct.point97) align 4 %1) #0 { + %3 = bitcast %struct.point97* %0 to i8* + %4 = bitcast %struct.point97* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo98(%struct.point98* noalias sret(%struct.point98) align 4 %0, %struct.point98* noundef byval(%struct.point98) align 4 %1) #0 { + %3 = bitcast %struct.point98* %0 to i8* + %4 = bitcast %struct.point98* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo99(%struct.point99* noalias sret(%struct.point99) align 4 %0, %struct.point99* noundef byval(%struct.point99) align 4 %1) #0 { + %3 = bitcast %struct.point99* %0 to i8* + %4 = bitcast %struct.point99* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo100(%struct.point100* noalias sret(%struct.point100) align 4 %0, %struct.point100* noundef byval(%struct.point100) align 4 %1) #0 { + %3 = bitcast %struct.point100* %0 to i8* + %4 = bitcast %struct.point100* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo101(%struct.point101* noalias sret(%struct.point101) align 4 %0, %struct.point101* noundef byval(%struct.point101) align 4 %1) #0 { + %3 = bitcast %struct.point101* %0 to i8* + %4 = bitcast %struct.point101* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo102(%struct.point102* noalias sret(%struct.point102) align 4 %0, %struct.point102* noundef byval(%struct.point102) align 4 %1) #0 { + %3 = bitcast %struct.point102* %0 to i8* + %4 = bitcast %struct.point102* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo103(%struct.point103* noalias sret(%struct.point103) align 4 %0, %struct.point103* noundef byval(%struct.point103) align 4 %1) #0 { + %3 = bitcast %struct.point103* %0 to i8* + %4 = bitcast %struct.point103* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo104(%struct.point104* noalias sret(%struct.point104) align 4 %0, %struct.point104* noundef byval(%struct.point104) align 4 %1) #0 { + %3 = bitcast %struct.point104* %0 to i8* + %4 = bitcast %struct.point104* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo105(%struct.point105* noalias sret(%struct.point105) align 4 %0, %struct.point105* noundef byval(%struct.point105) align 4 %1) #0 { + %3 = bitcast %struct.point105* %0 to i8* + %4 = bitcast %struct.point105* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo106(%struct.point106* noalias sret(%struct.point106) align 4 %0, %struct.point106* noundef byval(%struct.point106) align 4 %1) #0 { + %3 = bitcast %struct.point106* %0 to i8* + %4 = bitcast %struct.point106* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo107(%struct.point107* noalias sret(%struct.point107) align 4 %0, %struct.point107* noundef byval(%struct.point107) align 4 %1) #0 { + %3 = bitcast %struct.point107* %0 to i8* + %4 = bitcast %struct.point107* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo108(%struct.point108* noalias sret(%struct.point108) align 4 %0, %struct.point108* noundef byval(%struct.point108) align 4 %1) #0 { + %3 = bitcast %struct.point108* %0 to i8* + %4 = bitcast %struct.point108* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo109(%struct.point109* noalias sret(%struct.point109) align 4 %0, %struct.point109* noundef byval(%struct.point109) align 4 %1) #0 { + %3 = bitcast %struct.point109* %0 to i8* + %4 = bitcast %struct.point109* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo110(%struct.point110* noalias sret(%struct.point110) align 4 %0, %struct.point110* noundef byval(%struct.point110) align 4 %1) #0 { + %3 = bitcast %struct.point110* %0 to i8* + %4 = bitcast %struct.point110* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo111(%struct.point111* noalias sret(%struct.point111) align 4 %0, %struct.point111* noundef byval(%struct.point111) align 4 %1) #0 { + %3 = bitcast %struct.point111* %0 to i8* + %4 = bitcast %struct.point111* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo112(%struct.point112* noalias sret(%struct.point112) align 4 %0, %struct.point112* noundef byval(%struct.point112) align 4 %1) #0 { + %3 = bitcast %struct.point112* %0 to i8* + %4 = bitcast %struct.point112* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo113(%struct.point113* noalias sret(%struct.point113) align 4 %0, %struct.point113* noundef byval(%struct.point113) align 4 %1) #0 { + %3 = bitcast %struct.point113* %0 to i8* + %4 = bitcast %struct.point113* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo114(%struct.point114* noalias sret(%struct.point114) align 4 %0, %struct.point114* noundef byval(%struct.point114) align 4 %1) #0 { + %3 = bitcast %struct.point114* %0 to i8* + %4 = bitcast %struct.point114* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo115(%struct.point115* noalias sret(%struct.point115) align 4 %0, %struct.point115* noundef byval(%struct.point115) align 4 %1) #0 { + %3 = bitcast %struct.point115* %0 to i8* + %4 = bitcast %struct.point115* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo116(%struct.point116* noalias sret(%struct.point116) align 4 %0, %struct.point116* noundef byval(%struct.point116) align 4 %1) #0 { + %3 = bitcast %struct.point116* %0 to i8* + %4 = bitcast %struct.point116* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo117(%struct.point117* noalias sret(%struct.point117) align 4 %0, %struct.point117* noundef byval(%struct.point117) align 4 %1) #0 { + %3 = bitcast %struct.point117* %0 to i8* + %4 = bitcast %struct.point117* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo118(%struct.point118* noalias sret(%struct.point118) align 4 %0, %struct.point118* noundef byval(%struct.point118) align 4 %1) #0 { + %3 = bitcast %struct.point118* %0 to i8* + %4 = bitcast %struct.point118* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo119(%struct.point119* noalias sret(%struct.point119) align 4 %0, %struct.point119* noundef byval(%struct.point119) align 4 %1) #0 { + %3 = bitcast %struct.point119* %0 to i8* + %4 = bitcast %struct.point119* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo120(%struct.point120* noalias sret(%struct.point120) align 4 %0, %struct.point120* noundef byval(%struct.point120) align 4 %1) #0 { + %3 = bitcast %struct.point120* %0 to i8* + %4 = bitcast %struct.point120* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo121(%struct.point121* noalias sret(%struct.point121) align 4 %0, %struct.point121* noundef byval(%struct.point121) align 4 %1) #0 { + %3 = bitcast %struct.point121* %0 to i8* + %4 = bitcast %struct.point121* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo122(%struct.point122* noalias sret(%struct.point122) align 4 %0, %struct.point122* noundef byval(%struct.point122) align 4 %1) #0 { + %3 = bitcast %struct.point122* %0 to i8* + %4 = bitcast %struct.point122* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo123(%struct.point123* noalias sret(%struct.point123) align 4 %0, %struct.point123* noundef byval(%struct.point123) align 4 %1) #0 { + %3 = bitcast %struct.point123* %0 to i8* + %4 = bitcast %struct.point123* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo124(%struct.point124* noalias sret(%struct.point124) align 4 %0, %struct.point124* noundef byval(%struct.point124) align 4 %1) #0 { + %3 = bitcast %struct.point124* %0 to i8* + %4 = bitcast %struct.point124* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo125(%struct.point125* noalias sret(%struct.point125) align 4 %0, %struct.point125* noundef byval(%struct.point125) align 4 %1) #0 { + %3 = bitcast %struct.point125* %0 to i8* + %4 = bitcast %struct.point125* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo126(%struct.point126* noalias sret(%struct.point126) align 4 %0, %struct.point126* noundef byval(%struct.point126) align 4 %1) #0 { + %3 = bitcast %struct.point126* %0 to i8* + %4 = bitcast %struct.point126* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo127(%struct.point127* noalias sret(%struct.point127) align 4 %0, %struct.point127* noundef byval(%struct.point127) align 4 %1) #0 { + %3 = bitcast %struct.point127* %0 to i8* + %4 = bitcast %struct.point127* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo128(%struct.point128* noalias sret(%struct.point128) align 4 %0, %struct.point128* noundef byval(%struct.point128) align 4 %1) #0 { + %3 = bitcast %struct.point128* %0 to i8* + %4 = bitcast %struct.point128* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo129(%struct.point129* noalias sret(%struct.point129) align 4 %0, %struct.point129* noundef byval(%struct.point129) align 4 %1) #0 { + %3 = bitcast %struct.point129* %0 to i8* + %4 = bitcast %struct.point129* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo130(%struct.point130* noalias sret(%struct.point130) align 4 %0, %struct.point130* noundef byval(%struct.point130) align 4 %1) #0 { + %3 = bitcast %struct.point130* %0 to i8* + %4 = bitcast %struct.point130* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo131(%struct.point131* noalias sret(%struct.point131) align 4 %0, %struct.point131* noundef byval(%struct.point131) align 4 %1) #0 { + %3 = bitcast %struct.point131* %0 to i8* + %4 = bitcast %struct.point131* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo132(%struct.point132* noalias sret(%struct.point132) align 4 %0, %struct.point132* noundef byval(%struct.point132) align 4 %1) #0 { + %3 = bitcast %struct.point132* %0 to i8* + %4 = bitcast %struct.point132* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo133(%struct.point133* noalias sret(%struct.point133) align 4 %0, %struct.point133* noundef byval(%struct.point133) align 4 %1) #0 { + %3 = bitcast %struct.point133* %0 to i8* + %4 = bitcast %struct.point133* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo134(%struct.point134* noalias sret(%struct.point134) align 4 %0, %struct.point134* noundef byval(%struct.point134) align 4 %1) #0 { + %3 = bitcast %struct.point134* %0 to i8* + %4 = bitcast %struct.point134* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo135(%struct.point135* noalias sret(%struct.point135) align 4 %0, %struct.point135* noundef byval(%struct.point135) align 4 %1) #0 { + %3 = bitcast %struct.point135* %0 to i8* + %4 = bitcast %struct.point135* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo136(%struct.point136* noalias sret(%struct.point136) align 4 %0, %struct.point136* noundef byval(%struct.point136) align 4 %1) #0 { + %3 = bitcast %struct.point136* %0 to i8* + %4 = bitcast %struct.point136* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo137(%struct.point137* noalias sret(%struct.point137) align 4 %0, %struct.point137* noundef byval(%struct.point137) align 4 %1) #0 { + %3 = bitcast %struct.point137* %0 to i8* + %4 = bitcast %struct.point137* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo138(%struct.point138* noalias sret(%struct.point138) align 4 %0, %struct.point138* noundef byval(%struct.point138) align 4 %1) #0 { + %3 = bitcast %struct.point138* %0 to i8* + %4 = bitcast %struct.point138* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo139(%struct.point139* noalias sret(%struct.point139) align 4 %0, %struct.point139* noundef byval(%struct.point139) align 4 %1) #0 { + %3 = bitcast %struct.point139* %0 to i8* + %4 = bitcast %struct.point139* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo140(%struct.point140* noalias sret(%struct.point140) align 4 %0, %struct.point140* noundef byval(%struct.point140) align 4 %1) #0 { + %3 = bitcast %struct.point140* %0 to i8* + %4 = bitcast %struct.point140* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo141(%struct.point141* noalias sret(%struct.point141) align 4 %0, %struct.point141* noundef byval(%struct.point141) align 4 %1) #0 { + %3 = bitcast %struct.point141* %0 to i8* + %4 = bitcast %struct.point141* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo142(%struct.point142* noalias sret(%struct.point142) align 4 %0, %struct.point142* noundef byval(%struct.point142) align 4 %1) #0 { + %3 = bitcast %struct.point142* %0 to i8* + %4 = bitcast %struct.point142* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo143(%struct.point143* noalias sret(%struct.point143) align 4 %0, %struct.point143* noundef byval(%struct.point143) align 4 %1) #0 { + %3 = bitcast %struct.point143* %0 to i8* + %4 = bitcast %struct.point143* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo144(%struct.point144* noalias sret(%struct.point144) align 4 %0, %struct.point144* noundef byval(%struct.point144) align 4 %1) #0 { + %3 = bitcast %struct.point144* %0 to i8* + %4 = bitcast %struct.point144* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo145(%struct.point145* noalias sret(%struct.point145) align 4 %0, %struct.point145* noundef byval(%struct.point145) align 4 %1) #0 { + %3 = bitcast %struct.point145* %0 to i8* + %4 = bitcast %struct.point145* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo146(%struct.point146* noalias sret(%struct.point146) align 4 %0, %struct.point146* noundef byval(%struct.point146) align 4 %1) #0 { + %3 = bitcast %struct.point146* %0 to i8* + %4 = bitcast %struct.point146* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo147(%struct.point147* noalias sret(%struct.point147) align 4 %0, %struct.point147* noundef byval(%struct.point147) align 4 %1) #0 { + %3 = bitcast %struct.point147* %0 to i8* + %4 = bitcast %struct.point147* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo148(%struct.point148* noalias sret(%struct.point148) align 4 %0, %struct.point148* noundef byval(%struct.point148) align 4 %1) #0 { + %3 = bitcast %struct.point148* %0 to i8* + %4 = bitcast %struct.point148* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo149(%struct.point149* noalias sret(%struct.point149) align 4 %0, %struct.point149* noundef byval(%struct.point149) align 4 %1) #0 { + %3 = bitcast %struct.point149* %0 to i8* + %4 = bitcast %struct.point149* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo150(%struct.point150* noalias sret(%struct.point150) align 4 %0, %struct.point150* noundef byval(%struct.point150) align 4 %1) #0 { + %3 = bitcast %struct.point150* %0 to i8* + %4 = bitcast %struct.point150* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo151(%struct.point151* noalias sret(%struct.point151) align 4 %0, %struct.point151* noundef byval(%struct.point151) align 4 %1) #0 { + %3 = bitcast %struct.point151* %0 to i8* + %4 = bitcast %struct.point151* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo152(%struct.point152* noalias sret(%struct.point152) align 4 %0, %struct.point152* noundef byval(%struct.point152) align 4 %1) #0 { + %3 = bitcast %struct.point152* %0 to i8* + %4 = bitcast %struct.point152* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo153(%struct.point153* noalias sret(%struct.point153) align 4 %0, %struct.point153* noundef byval(%struct.point153) align 4 %1) #0 { + %3 = bitcast %struct.point153* %0 to i8* + %4 = bitcast %struct.point153* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo154(%struct.point154* noalias sret(%struct.point154) align 4 %0, %struct.point154* noundef byval(%struct.point154) align 4 %1) #0 { + %3 = bitcast %struct.point154* %0 to i8* + %4 = bitcast %struct.point154* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo155(%struct.point155* noalias sret(%struct.point155) align 4 %0, %struct.point155* noundef byval(%struct.point155) align 4 %1) #0 { + %3 = bitcast %struct.point155* %0 to i8* + %4 = bitcast %struct.point155* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo156(%struct.point156* noalias sret(%struct.point156) align 4 %0, %struct.point156* noundef byval(%struct.point156) align 4 %1) #0 { + %3 = bitcast %struct.point156* %0 to i8* + %4 = bitcast %struct.point156* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo157(%struct.point157* noalias sret(%struct.point157) align 4 %0, %struct.point157* noundef byval(%struct.point157) align 4 %1) #0 { + %3 = bitcast %struct.point157* %0 to i8* + %4 = bitcast %struct.point157* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo158(%struct.point158* noalias sret(%struct.point158) align 4 %0, %struct.point158* noundef byval(%struct.point158) align 4 %1) #0 { + %3 = bitcast %struct.point158* %0 to i8* + %4 = bitcast %struct.point158* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo159(%struct.point159* noalias sret(%struct.point159) align 4 %0, %struct.point159* noundef byval(%struct.point159) align 4 %1) #0 { + %3 = bitcast %struct.point159* %0 to i8* + %4 = bitcast %struct.point159* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo160(%struct.point160* noalias sret(%struct.point160) align 4 %0, %struct.point160* noundef byval(%struct.point160) align 4 %1) #0 { + %3 = bitcast %struct.point160* %0 to i8* + %4 = bitcast %struct.point160* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo161(%struct.point161* noalias sret(%struct.point161) align 4 %0, %struct.point161* noundef byval(%struct.point161) align 4 %1) #0 { + %3 = bitcast %struct.point161* %0 to i8* + %4 = bitcast %struct.point161* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo162(%struct.point162* noalias sret(%struct.point162) align 4 %0, %struct.point162* noundef byval(%struct.point162) align 4 %1) #0 { + %3 = bitcast %struct.point162* %0 to i8* + %4 = bitcast %struct.point162* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo163(%struct.point163* noalias sret(%struct.point163) align 4 %0, %struct.point163* noundef byval(%struct.point163) align 4 %1) #0 { + %3 = bitcast %struct.point163* %0 to i8* + %4 = bitcast %struct.point163* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo164(%struct.point164* noalias sret(%struct.point164) align 4 %0, %struct.point164* noundef byval(%struct.point164) align 4 %1) #0 { + %3 = bitcast %struct.point164* %0 to i8* + %4 = bitcast %struct.point164* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo165(%struct.point165* noalias sret(%struct.point165) align 4 %0, %struct.point165* noundef byval(%struct.point165) align 4 %1) #0 { + %3 = bitcast %struct.point165* %0 to i8* + %4 = bitcast %struct.point165* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo166(%struct.point166* noalias sret(%struct.point166) align 4 %0, %struct.point166* noundef byval(%struct.point166) align 4 %1) #0 { + %3 = bitcast %struct.point166* %0 to i8* + %4 = bitcast %struct.point166* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo167(%struct.point167* noalias sret(%struct.point167) align 4 %0, %struct.point167* noundef byval(%struct.point167) align 4 %1) #0 { + %3 = bitcast %struct.point167* %0 to i8* + %4 = bitcast %struct.point167* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo168(%struct.point168* noalias sret(%struct.point168) align 4 %0, %struct.point168* noundef byval(%struct.point168) align 4 %1) #0 { + %3 = bitcast %struct.point168* %0 to i8* + %4 = bitcast %struct.point168* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo169(%struct.point169* noalias sret(%struct.point169) align 4 %0, %struct.point169* noundef byval(%struct.point169) align 4 %1) #0 { + %3 = bitcast %struct.point169* %0 to i8* + %4 = bitcast %struct.point169* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo170(%struct.point170* noalias sret(%struct.point170) align 4 %0, %struct.point170* noundef byval(%struct.point170) align 4 %1) #0 { + %3 = bitcast %struct.point170* %0 to i8* + %4 = bitcast %struct.point170* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo171(%struct.point171* noalias sret(%struct.point171) align 4 %0, %struct.point171* noundef byval(%struct.point171) align 4 %1) #0 { + %3 = bitcast %struct.point171* %0 to i8* + %4 = bitcast %struct.point171* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo172(%struct.point172* noalias sret(%struct.point172) align 4 %0, %struct.point172* noundef byval(%struct.point172) align 4 %1) #0 { + %3 = bitcast %struct.point172* %0 to i8* + %4 = bitcast %struct.point172* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo173(%struct.point173* noalias sret(%struct.point173) align 4 %0, %struct.point173* noundef byval(%struct.point173) align 4 %1) #0 { + %3 = bitcast %struct.point173* %0 to i8* + %4 = bitcast %struct.point173* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo174(%struct.point174* noalias sret(%struct.point174) align 4 %0, %struct.point174* noundef byval(%struct.point174) align 4 %1) #0 { + %3 = bitcast %struct.point174* %0 to i8* + %4 = bitcast %struct.point174* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo175(%struct.point175* noalias sret(%struct.point175) align 4 %0, %struct.point175* noundef byval(%struct.point175) align 4 %1) #0 { + %3 = bitcast %struct.point175* %0 to i8* + %4 = bitcast %struct.point175* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo176(%struct.point176* noalias sret(%struct.point176) align 4 %0, %struct.point176* noundef byval(%struct.point176) align 4 %1) #0 { + %3 = bitcast %struct.point176* %0 to i8* + %4 = bitcast %struct.point176* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo177(%struct.point177* noalias sret(%struct.point177) align 4 %0, %struct.point177* noundef byval(%struct.point177) align 4 %1) #0 { + %3 = bitcast %struct.point177* %0 to i8* + %4 = bitcast %struct.point177* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo178(%struct.point178* noalias sret(%struct.point178) align 4 %0, %struct.point178* noundef byval(%struct.point178) align 4 %1) #0 { + %3 = bitcast %struct.point178* %0 to i8* + %4 = bitcast %struct.point178* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo179(%struct.point179* noalias sret(%struct.point179) align 4 %0, %struct.point179* noundef byval(%struct.point179) align 4 %1) #0 { + %3 = bitcast %struct.point179* %0 to i8* + %4 = bitcast %struct.point179* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo180(%struct.point180* noalias sret(%struct.point180) align 4 %0, %struct.point180* noundef byval(%struct.point180) align 4 %1) #0 { + %3 = bitcast %struct.point180* %0 to i8* + %4 = bitcast %struct.point180* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo181(%struct.point181* noalias sret(%struct.point181) align 4 %0, %struct.point181* noundef byval(%struct.point181) align 4 %1) #0 { + %3 = bitcast %struct.point181* %0 to i8* + %4 = bitcast %struct.point181* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo182(%struct.point182* noalias sret(%struct.point182) align 4 %0, %struct.point182* noundef byval(%struct.point182) align 4 %1) #0 { + %3 = bitcast %struct.point182* %0 to i8* + %4 = bitcast %struct.point182* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo183(%struct.point183* noalias sret(%struct.point183) align 4 %0, %struct.point183* noundef byval(%struct.point183) align 4 %1) #0 { + %3 = bitcast %struct.point183* %0 to i8* + %4 = bitcast %struct.point183* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo184(%struct.point184* noalias sret(%struct.point184) align 4 %0, %struct.point184* noundef byval(%struct.point184) align 4 %1) #0 { + %3 = bitcast %struct.point184* %0 to i8* + %4 = bitcast %struct.point184* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo185(%struct.point185* noalias sret(%struct.point185) align 4 %0, %struct.point185* noundef byval(%struct.point185) align 4 %1) #0 { + %3 = bitcast %struct.point185* %0 to i8* + %4 = bitcast %struct.point185* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo186(%struct.point186* noalias sret(%struct.point186) align 4 %0, %struct.point186* noundef byval(%struct.point186) align 4 %1) #0 { + %3 = bitcast %struct.point186* %0 to i8* + %4 = bitcast %struct.point186* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo187(%struct.point187* noalias sret(%struct.point187) align 4 %0, %struct.point187* noundef byval(%struct.point187) align 4 %1) #0 { + %3 = bitcast %struct.point187* %0 to i8* + %4 = bitcast %struct.point187* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo188(%struct.point188* noalias sret(%struct.point188) align 4 %0, %struct.point188* noundef byval(%struct.point188) align 4 %1) #0 { + %3 = bitcast %struct.point188* %0 to i8* + %4 = bitcast %struct.point188* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo189(%struct.point189* noalias sret(%struct.point189) align 4 %0, %struct.point189* noundef byval(%struct.point189) align 4 %1) #0 { + %3 = bitcast %struct.point189* %0 to i8* + %4 = bitcast %struct.point189* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo190(%struct.point190* noalias sret(%struct.point190) align 4 %0, %struct.point190* noundef byval(%struct.point190) align 4 %1) #0 { + %3 = bitcast %struct.point190* %0 to i8* + %4 = bitcast %struct.point190* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo191(%struct.point191* noalias sret(%struct.point191) align 4 %0, %struct.point191* noundef byval(%struct.point191) align 4 %1) #0 { + %3 = bitcast %struct.point191* %0 to i8* + %4 = bitcast %struct.point191* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo192(%struct.point192* noalias sret(%struct.point192) align 4 %0, %struct.point192* noundef byval(%struct.point192) align 4 %1) #0 { + %3 = bitcast %struct.point192* %0 to i8* + %4 = bitcast %struct.point192* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo193(%struct.point193* noalias sret(%struct.point193) align 4 %0, %struct.point193* noundef byval(%struct.point193) align 4 %1) #0 { + %3 = bitcast %struct.point193* %0 to i8* + %4 = bitcast %struct.point193* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo194(%struct.point194* noalias sret(%struct.point194) align 4 %0, %struct.point194* noundef byval(%struct.point194) align 4 %1) #0 { + %3 = bitcast %struct.point194* %0 to i8* + %4 = bitcast %struct.point194* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo195(%struct.point195* noalias sret(%struct.point195) align 4 %0, %struct.point195* noundef byval(%struct.point195) align 4 %1) #0 { + %3 = bitcast %struct.point195* %0 to i8* + %4 = bitcast %struct.point195* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo196(%struct.point196* noalias sret(%struct.point196) align 4 %0, %struct.point196* noundef byval(%struct.point196) align 4 %1) #0 { + %3 = bitcast %struct.point196* %0 to i8* + %4 = bitcast %struct.point196* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo197(%struct.point197* noalias sret(%struct.point197) align 4 %0, %struct.point197* noundef byval(%struct.point197) align 4 %1) #0 { + %3 = bitcast %struct.point197* %0 to i8* + %4 = bitcast %struct.point197* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo198(%struct.point198* noalias sret(%struct.point198) align 4 %0, %struct.point198* noundef byval(%struct.point198) align 4 %1) #0 { + %3 = bitcast %struct.point198* %0 to i8* + %4 = bitcast %struct.point198* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo199(%struct.point199* noalias sret(%struct.point199) align 4 %0, %struct.point199* noundef byval(%struct.point199) align 4 %1) #0 { + %3 = bitcast %struct.point199* %0 to i8* + %4 = bitcast %struct.point199* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo200(%struct.point200* noalias sret(%struct.point200) align 4 %0, %struct.point200* noundef byval(%struct.point200) align 4 %1) #0 { + %3 = bitcast %struct.point200* %0 to i8* + %4 = bitcast %struct.point200* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo201(%struct.point201* noalias sret(%struct.point201) align 4 %0, %struct.point201* noundef byval(%struct.point201) align 4 %1) #0 { + %3 = bitcast %struct.point201* %0 to i8* + %4 = bitcast %struct.point201* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo202(%struct.point202* noalias sret(%struct.point202) align 4 %0, %struct.point202* noundef byval(%struct.point202) align 4 %1) #0 { + %3 = bitcast %struct.point202* %0 to i8* + %4 = bitcast %struct.point202* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo203(%struct.point203* noalias sret(%struct.point203) align 4 %0, %struct.point203* noundef byval(%struct.point203) align 4 %1) #0 { + %3 = bitcast %struct.point203* %0 to i8* + %4 = bitcast %struct.point203* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo204(%struct.point204* noalias sret(%struct.point204) align 4 %0, %struct.point204* noundef byval(%struct.point204) align 4 %1) #0 { + %3 = bitcast %struct.point204* %0 to i8* + %4 = bitcast %struct.point204* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo205(%struct.point205* noalias sret(%struct.point205) align 4 %0, %struct.point205* noundef byval(%struct.point205) align 4 %1) #0 { + %3 = bitcast %struct.point205* %0 to i8* + %4 = bitcast %struct.point205* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo206(%struct.point206* noalias sret(%struct.point206) align 4 %0, %struct.point206* noundef byval(%struct.point206) align 4 %1) #0 { + %3 = bitcast %struct.point206* %0 to i8* + %4 = bitcast %struct.point206* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo207(%struct.point207* noalias sret(%struct.point207) align 4 %0, %struct.point207* noundef byval(%struct.point207) align 4 %1) #0 { + %3 = bitcast %struct.point207* %0 to i8* + %4 = bitcast %struct.point207* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo208(%struct.point208* noalias sret(%struct.point208) align 4 %0, %struct.point208* noundef byval(%struct.point208) align 4 %1) #0 { + %3 = bitcast %struct.point208* %0 to i8* + %4 = bitcast %struct.point208* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo209(%struct.point209* noalias sret(%struct.point209) align 4 %0, %struct.point209* noundef byval(%struct.point209) align 4 %1) #0 { + %3 = bitcast %struct.point209* %0 to i8* + %4 = bitcast %struct.point209* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo210(%struct.point210* noalias sret(%struct.point210) align 4 %0, %struct.point210* noundef byval(%struct.point210) align 4 %1) #0 { + %3 = bitcast %struct.point210* %0 to i8* + %4 = bitcast %struct.point210* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo211(%struct.point211* noalias sret(%struct.point211) align 4 %0, %struct.point211* noundef byval(%struct.point211) align 4 %1) #0 { + %3 = bitcast %struct.point211* %0 to i8* + %4 = bitcast %struct.point211* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo212(%struct.point212* noalias sret(%struct.point212) align 4 %0, %struct.point212* noundef byval(%struct.point212) align 4 %1) #0 { + %3 = bitcast %struct.point212* %0 to i8* + %4 = bitcast %struct.point212* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo213(%struct.point213* noalias sret(%struct.point213) align 4 %0, %struct.point213* noundef byval(%struct.point213) align 4 %1) #0 { + %3 = bitcast %struct.point213* %0 to i8* + %4 = bitcast %struct.point213* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo214(%struct.point214* noalias sret(%struct.point214) align 4 %0, %struct.point214* noundef byval(%struct.point214) align 4 %1) #0 { + %3 = bitcast %struct.point214* %0 to i8* + %4 = bitcast %struct.point214* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo215(%struct.point215* noalias sret(%struct.point215) align 4 %0, %struct.point215* noundef byval(%struct.point215) align 4 %1) #0 { + %3 = bitcast %struct.point215* %0 to i8* + %4 = bitcast %struct.point215* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo216(%struct.point216* noalias sret(%struct.point216) align 4 %0, %struct.point216* noundef byval(%struct.point216) align 4 %1) #0 { + %3 = bitcast %struct.point216* %0 to i8* + %4 = bitcast %struct.point216* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo217(%struct.point217* noalias sret(%struct.point217) align 4 %0, %struct.point217* noundef byval(%struct.point217) align 4 %1) #0 { + %3 = bitcast %struct.point217* %0 to i8* + %4 = bitcast %struct.point217* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo218(%struct.point218* noalias sret(%struct.point218) align 4 %0, %struct.point218* noundef byval(%struct.point218) align 4 %1) #0 { + %3 = bitcast %struct.point218* %0 to i8* + %4 = bitcast %struct.point218* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo219(%struct.point219* noalias sret(%struct.point219) align 4 %0, %struct.point219* noundef byval(%struct.point219) align 4 %1) #0 { + %3 = bitcast %struct.point219* %0 to i8* + %4 = bitcast %struct.point219* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo220(%struct.point220* noalias sret(%struct.point220) align 4 %0, %struct.point220* noundef byval(%struct.point220) align 4 %1) #0 { + %3 = bitcast %struct.point220* %0 to i8* + %4 = bitcast %struct.point220* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo221(%struct.point221* noalias sret(%struct.point221) align 4 %0, %struct.point221* noundef byval(%struct.point221) align 4 %1) #0 { + %3 = bitcast %struct.point221* %0 to i8* + %4 = bitcast %struct.point221* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo222(%struct.point222* noalias sret(%struct.point222) align 4 %0, %struct.point222* noundef byval(%struct.point222) align 4 %1) #0 { + %3 = bitcast %struct.point222* %0 to i8* + %4 = bitcast %struct.point222* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo223(%struct.point223* noalias sret(%struct.point223) align 4 %0, %struct.point223* noundef byval(%struct.point223) align 4 %1) #0 { + %3 = bitcast %struct.point223* %0 to i8* + %4 = bitcast %struct.point223* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo224(%struct.point224* noalias sret(%struct.point224) align 4 %0, %struct.point224* noundef byval(%struct.point224) align 4 %1) #0 { + %3 = bitcast %struct.point224* %0 to i8* + %4 = bitcast %struct.point224* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo225(%struct.point225* noalias sret(%struct.point225) align 4 %0, %struct.point225* noundef byval(%struct.point225) align 4 %1) #0 { + %3 = bitcast %struct.point225* %0 to i8* + %4 = bitcast %struct.point225* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo226(%struct.point226* noalias sret(%struct.point226) align 4 %0, %struct.point226* noundef byval(%struct.point226) align 4 %1) #0 { + %3 = bitcast %struct.point226* %0 to i8* + %4 = bitcast %struct.point226* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo227(%struct.point227* noalias sret(%struct.point227) align 4 %0, %struct.point227* noundef byval(%struct.point227) align 4 %1) #0 { + %3 = bitcast %struct.point227* %0 to i8* + %4 = bitcast %struct.point227* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo228(%struct.point228* noalias sret(%struct.point228) align 4 %0, %struct.point228* noundef byval(%struct.point228) align 4 %1) #0 { + %3 = bitcast %struct.point228* %0 to i8* + %4 = bitcast %struct.point228* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo229(%struct.point229* noalias sret(%struct.point229) align 4 %0, %struct.point229* noundef byval(%struct.point229) align 4 %1) #0 { + %3 = bitcast %struct.point229* %0 to i8* + %4 = bitcast %struct.point229* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo230(%struct.point230* noalias sret(%struct.point230) align 4 %0, %struct.point230* noundef byval(%struct.point230) align 4 %1) #0 { + %3 = bitcast %struct.point230* %0 to i8* + %4 = bitcast %struct.point230* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo231(%struct.point231* noalias sret(%struct.point231) align 4 %0, %struct.point231* noundef byval(%struct.point231) align 4 %1) #0 { + %3 = bitcast %struct.point231* %0 to i8* + %4 = bitcast %struct.point231* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo232(%struct.point232* noalias sret(%struct.point232) align 4 %0, %struct.point232* noundef byval(%struct.point232) align 4 %1) #0 { + %3 = bitcast %struct.point232* %0 to i8* + %4 = bitcast %struct.point232* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo233(%struct.point233* noalias sret(%struct.point233) align 4 %0, %struct.point233* noundef byval(%struct.point233) align 4 %1) #0 { + %3 = bitcast %struct.point233* %0 to i8* + %4 = bitcast %struct.point233* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo234(%struct.point234* noalias sret(%struct.point234) align 4 %0, %struct.point234* noundef byval(%struct.point234) align 4 %1) #0 { + %3 = bitcast %struct.point234* %0 to i8* + %4 = bitcast %struct.point234* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo235(%struct.point235* noalias sret(%struct.point235) align 4 %0, %struct.point235* noundef byval(%struct.point235) align 4 %1) #0 { + %3 = bitcast %struct.point235* %0 to i8* + %4 = bitcast %struct.point235* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo236(%struct.point236* noalias sret(%struct.point236) align 4 %0, %struct.point236* noundef byval(%struct.point236) align 4 %1) #0 { + %3 = bitcast %struct.point236* %0 to i8* + %4 = bitcast %struct.point236* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo237(%struct.point237* noalias sret(%struct.point237) align 4 %0, %struct.point237* noundef byval(%struct.point237) align 4 %1) #0 { + %3 = bitcast %struct.point237* %0 to i8* + %4 = bitcast %struct.point237* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo238(%struct.point238* noalias sret(%struct.point238) align 4 %0, %struct.point238* noundef byval(%struct.point238) align 4 %1) #0 { + %3 = bitcast %struct.point238* %0 to i8* + %4 = bitcast %struct.point238* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo239(%struct.point239* noalias sret(%struct.point239) align 4 %0, %struct.point239* noundef byval(%struct.point239) align 4 %1) #0 { + %3 = bitcast %struct.point239* %0 to i8* + %4 = bitcast %struct.point239* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo240(%struct.point240* noalias sret(%struct.point240) align 4 %0, %struct.point240* noundef byval(%struct.point240) align 4 %1) #0 { + %3 = bitcast %struct.point240* %0 to i8* + %4 = bitcast %struct.point240* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo241(%struct.point241* noalias sret(%struct.point241) align 4 %0, %struct.point241* noundef byval(%struct.point241) align 4 %1) #0 { + %3 = bitcast %struct.point241* %0 to i8* + %4 = bitcast %struct.point241* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo242(%struct.point242* noalias sret(%struct.point242) align 4 %0, %struct.point242* noundef byval(%struct.point242) align 4 %1) #0 { + %3 = bitcast %struct.point242* %0 to i8* + %4 = bitcast %struct.point242* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo243(%struct.point243* noalias sret(%struct.point243) align 4 %0, %struct.point243* noundef byval(%struct.point243) align 4 %1) #0 { + %3 = bitcast %struct.point243* %0 to i8* + %4 = bitcast %struct.point243* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo244(%struct.point244* noalias sret(%struct.point244) align 4 %0, %struct.point244* noundef byval(%struct.point244) align 4 %1) #0 { + %3 = bitcast %struct.point244* %0 to i8* + %4 = bitcast %struct.point244* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo245(%struct.point245* noalias sret(%struct.point245) align 4 %0, %struct.point245* noundef byval(%struct.point245) align 4 %1) #0 { + %3 = bitcast %struct.point245* %0 to i8* + %4 = bitcast %struct.point245* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo246(%struct.point246* noalias sret(%struct.point246) align 4 %0, %struct.point246* noundef byval(%struct.point246) align 4 %1) #0 { + %3 = bitcast %struct.point246* %0 to i8* + %4 = bitcast %struct.point246* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo247(%struct.point247* noalias sret(%struct.point247) align 4 %0, %struct.point247* noundef byval(%struct.point247) align 4 %1) #0 { + %3 = bitcast %struct.point247* %0 to i8* + %4 = bitcast %struct.point247* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo248(%struct.point248* noalias sret(%struct.point248) align 4 %0, %struct.point248* noundef byval(%struct.point248) align 4 %1) #0 { + %3 = bitcast %struct.point248* %0 to i8* + %4 = bitcast %struct.point248* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo249(%struct.point249* noalias sret(%struct.point249) align 4 %0, %struct.point249* noundef byval(%struct.point249) align 4 %1) #0 { + %3 = bitcast %struct.point249* %0 to i8* + %4 = bitcast %struct.point249* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo250(%struct.point250* noalias sret(%struct.point250) align 4 %0, %struct.point250* noundef byval(%struct.point250) align 4 %1) #0 { + %3 = bitcast %struct.point250* %0 to i8* + %4 = bitcast %struct.point250* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo251(%struct.point251* noalias sret(%struct.point251) align 4 %0, %struct.point251* noundef byval(%struct.point251) align 4 %1) #0 { + %3 = bitcast %struct.point251* %0 to i8* + %4 = bitcast %struct.point251* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo252(%struct.point252* noalias sret(%struct.point252) align 4 %0, %struct.point252* noundef byval(%struct.point252) align 4 %1) #0 { + %3 = bitcast %struct.point252* %0 to i8* + %4 = bitcast %struct.point252* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo253(%struct.point253* noalias sret(%struct.point253) align 4 %0, %struct.point253* noundef byval(%struct.point253) align 4 %1) #0 { + %3 = bitcast %struct.point253* %0 to i8* + %4 = bitcast %struct.point253* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo254(%struct.point254* noalias sret(%struct.point254) align 4 %0, %struct.point254* noundef byval(%struct.point254) align 4 %1) #0 { + %3 = bitcast %struct.point254* %0 to i8* + %4 = bitcast %struct.point254* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo255(%struct.point255* noalias sret(%struct.point255) align 4 %0, %struct.point255* noundef byval(%struct.point255) align 4 %1) #0 { + %3 = bitcast %struct.point255* %0 to i8* + %4 = bitcast %struct.point255* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo256(%struct.point256* noalias sret(%struct.point256) align 4 %0, %struct.point256* noundef byval(%struct.point256) align 4 %1) #0 { + %3 = bitcast %struct.point256* %0 to i8* + %4 = bitcast %struct.point256* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo257(%struct.point257* noalias sret(%struct.point257) align 4 %0, %struct.point257* noundef byval(%struct.point257) align 4 %1) #0 { + %3 = bitcast %struct.point257* %0 to i8* + %4 = bitcast %struct.point257* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo258(%struct.point258* noalias sret(%struct.point258) align 4 %0, %struct.point258* noundef byval(%struct.point258) align 4 %1) #0 { + %3 = bitcast %struct.point258* %0 to i8* + %4 = bitcast %struct.point258* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo259(%struct.point259* noalias sret(%struct.point259) align 4 %0, %struct.point259* noundef byval(%struct.point259) align 4 %1) #0 { + %3 = bitcast %struct.point259* %0 to i8* + %4 = bitcast %struct.point259* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo260(%struct.point260* noalias sret(%struct.point260) align 4 %0, %struct.point260* noundef byval(%struct.point260) align 4 %1) #0 { + %3 = bitcast %struct.point260* %0 to i8* + %4 = bitcast %struct.point260* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo261(%struct.point261* noalias sret(%struct.point261) align 4 %0, %struct.point261* noundef byval(%struct.point261) align 4 %1) #0 { + %3 = bitcast %struct.point261* %0 to i8* + %4 = bitcast %struct.point261* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo262(%struct.point262* noalias sret(%struct.point262) align 4 %0, %struct.point262* noundef byval(%struct.point262) align 4 %1) #0 { + %3 = bitcast %struct.point262* %0 to i8* + %4 = bitcast %struct.point262* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo263(%struct.point263* noalias sret(%struct.point263) align 4 %0, %struct.point263* noundef byval(%struct.point263) align 4 %1) #0 { + %3 = bitcast %struct.point263* %0 to i8* + %4 = bitcast %struct.point263* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo264(%struct.point264* noalias sret(%struct.point264) align 4 %0, %struct.point264* noundef byval(%struct.point264) align 4 %1) #0 { + %3 = bitcast %struct.point264* %0 to i8* + %4 = bitcast %struct.point264* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo265(%struct.point265* noalias sret(%struct.point265) align 4 %0, %struct.point265* noundef byval(%struct.point265) align 4 %1) #0 { + %3 = bitcast %struct.point265* %0 to i8* + %4 = bitcast %struct.point265* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo266(%struct.point266* noalias sret(%struct.point266) align 4 %0, %struct.point266* noundef byval(%struct.point266) align 4 %1) #0 { + %3 = bitcast %struct.point266* %0 to i8* + %4 = bitcast %struct.point266* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo267(%struct.point267* noalias sret(%struct.point267) align 4 %0, %struct.point267* noundef byval(%struct.point267) align 4 %1) #0 { + %3 = bitcast %struct.point267* %0 to i8* + %4 = bitcast %struct.point267* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo268(%struct.point268* noalias sret(%struct.point268) align 4 %0, %struct.point268* noundef byval(%struct.point268) align 4 %1) #0 { + %3 = bitcast %struct.point268* %0 to i8* + %4 = bitcast %struct.point268* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo269(%struct.point269* noalias sret(%struct.point269) align 4 %0, %struct.point269* noundef byval(%struct.point269) align 4 %1) #0 { + %3 = bitcast %struct.point269* %0 to i8* + %4 = bitcast %struct.point269* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo270(%struct.point270* noalias sret(%struct.point270) align 4 %0, %struct.point270* noundef byval(%struct.point270) align 4 %1) #0 { + %3 = bitcast %struct.point270* %0 to i8* + %4 = bitcast %struct.point270* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo271(%struct.point271* noalias sret(%struct.point271) align 4 %0, %struct.point271* noundef byval(%struct.point271) align 4 %1) #0 { + %3 = bitcast %struct.point271* %0 to i8* + %4 = bitcast %struct.point271* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo272(%struct.point272* noalias sret(%struct.point272) align 4 %0, %struct.point272* noundef byval(%struct.point272) align 4 %1) #0 { + %3 = bitcast %struct.point272* %0 to i8* + %4 = bitcast %struct.point272* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo273(%struct.point273* noalias sret(%struct.point273) align 4 %0, %struct.point273* noundef byval(%struct.point273) align 4 %1) #0 { + %3 = bitcast %struct.point273* %0 to i8* + %4 = bitcast %struct.point273* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo274(%struct.point274* noalias sret(%struct.point274) align 4 %0, %struct.point274* noundef byval(%struct.point274) align 4 %1) #0 { + %3 = bitcast %struct.point274* %0 to i8* + %4 = bitcast %struct.point274* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo275(%struct.point275* noalias sret(%struct.point275) align 4 %0, %struct.point275* noundef byval(%struct.point275) align 4 %1) #0 { + %3 = bitcast %struct.point275* %0 to i8* + %4 = bitcast %struct.point275* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo276(%struct.point276* noalias sret(%struct.point276) align 4 %0, %struct.point276* noundef byval(%struct.point276) align 4 %1) #0 { + %3 = bitcast %struct.point276* %0 to i8* + %4 = bitcast %struct.point276* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo277(%struct.point277* noalias sret(%struct.point277) align 4 %0, %struct.point277* noundef byval(%struct.point277) align 4 %1) #0 { + %3 = bitcast %struct.point277* %0 to i8* + %4 = bitcast %struct.point277* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo278(%struct.point278* noalias sret(%struct.point278) align 4 %0, %struct.point278* noundef byval(%struct.point278) align 4 %1) #0 { + %3 = bitcast %struct.point278* %0 to i8* + %4 = bitcast %struct.point278* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo279(%struct.point279* noalias sret(%struct.point279) align 4 %0, %struct.point279* noundef byval(%struct.point279) align 4 %1) #0 { + %3 = bitcast %struct.point279* %0 to i8* + %4 = bitcast %struct.point279* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo280(%struct.point280* noalias sret(%struct.point280) align 4 %0, %struct.point280* noundef byval(%struct.point280) align 4 %1) #0 { + %3 = bitcast %struct.point280* %0 to i8* + %4 = bitcast %struct.point280* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo281(%struct.point281* noalias sret(%struct.point281) align 4 %0, %struct.point281* noundef byval(%struct.point281) align 4 %1) #0 { + %3 = bitcast %struct.point281* %0 to i8* + %4 = bitcast %struct.point281* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo282(%struct.point282* noalias sret(%struct.point282) align 4 %0, %struct.point282* noundef byval(%struct.point282) align 4 %1) #0 { + %3 = bitcast %struct.point282* %0 to i8* + %4 = bitcast %struct.point282* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo283(%struct.point283* noalias sret(%struct.point283) align 4 %0, %struct.point283* noundef byval(%struct.point283) align 4 %1) #0 { + %3 = bitcast %struct.point283* %0 to i8* + %4 = bitcast %struct.point283* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo284(%struct.point284* noalias sret(%struct.point284) align 4 %0, %struct.point284* noundef byval(%struct.point284) align 4 %1) #0 { + %3 = bitcast %struct.point284* %0 to i8* + %4 = bitcast %struct.point284* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo285(%struct.point285* noalias sret(%struct.point285) align 4 %0, %struct.point285* noundef byval(%struct.point285) align 4 %1) #0 { + %3 = bitcast %struct.point285* %0 to i8* + %4 = bitcast %struct.point285* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo286(%struct.point286* noalias sret(%struct.point286) align 4 %0, %struct.point286* noundef byval(%struct.point286) align 4 %1) #0 { + %3 = bitcast %struct.point286* %0 to i8* + %4 = bitcast %struct.point286* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo287(%struct.point287* noalias sret(%struct.point287) align 4 %0, %struct.point287* noundef byval(%struct.point287) align 4 %1) #0 { + %3 = bitcast %struct.point287* %0 to i8* + %4 = bitcast %struct.point287* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo288(%struct.point288* noalias sret(%struct.point288) align 4 %0, %struct.point288* noundef byval(%struct.point288) align 4 %1) #0 { + %3 = bitcast %struct.point288* %0 to i8* + %4 = bitcast %struct.point288* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo289(%struct.point289* noalias sret(%struct.point289) align 4 %0, %struct.point289* noundef byval(%struct.point289) align 4 %1) #0 { + %3 = bitcast %struct.point289* %0 to i8* + %4 = bitcast %struct.point289* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo290(%struct.point290* noalias sret(%struct.point290) align 4 %0, %struct.point290* noundef byval(%struct.point290) align 4 %1) #0 { + %3 = bitcast %struct.point290* %0 to i8* + %4 = bitcast %struct.point290* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo291(%struct.point291* noalias sret(%struct.point291) align 4 %0, %struct.point291* noundef byval(%struct.point291) align 4 %1) #0 { + %3 = bitcast %struct.point291* %0 to i8* + %4 = bitcast %struct.point291* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo292(%struct.point292* noalias sret(%struct.point292) align 4 %0, %struct.point292* noundef byval(%struct.point292) align 4 %1) #0 { + %3 = bitcast %struct.point292* %0 to i8* + %4 = bitcast %struct.point292* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo293(%struct.point293* noalias sret(%struct.point293) align 4 %0, %struct.point293* noundef byval(%struct.point293) align 4 %1) #0 { + %3 = bitcast %struct.point293* %0 to i8* + %4 = bitcast %struct.point293* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo294(%struct.point294* noalias sret(%struct.point294) align 4 %0, %struct.point294* noundef byval(%struct.point294) align 4 %1) #0 { + %3 = bitcast %struct.point294* %0 to i8* + %4 = bitcast %struct.point294* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo295(%struct.point295* noalias sret(%struct.point295) align 2 %0, %struct.point295* noundef byval(%struct.point295) align 2 %1) #0 { + %3 = bitcast %struct.point295* %0 to i8* + %4 = bitcast %struct.point295* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 4, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo296(%struct.point296* noalias sret(%struct.point296) align 2 %0, %struct.point296* noundef byval(%struct.point296) align 2 %1) #0 { + %3 = bitcast %struct.point296* %0 to i8* + %4 = bitcast %struct.point296* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo297(%struct.point297* noalias sret(%struct.point297) align 2 %0, %struct.point297* noundef byval(%struct.point297) align 2 %1) #0 { + %3 = bitcast %struct.point297* %0 to i8* + %4 = bitcast %struct.point297* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo298(%struct.point298* noalias sret(%struct.point298) align 2 %0, %struct.point298* noundef byval(%struct.point298) align 2 %1) #0 { + %3 = bitcast %struct.point298* %0 to i8* + %4 = bitcast %struct.point298* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo299(%struct.point299* noalias sret(%struct.point299) align 4 %0, %struct.point299* noundef byval(%struct.point299) align 4 %1) #0 { + %3 = bitcast %struct.point299* %0 to i8* + %4 = bitcast %struct.point299* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo300(%struct.point300* noalias sret(%struct.point300) align 4 %0, %struct.point300* noundef byval(%struct.point300) align 4 %1) #0 { + %3 = bitcast %struct.point300* %0 to i8* + %4 = bitcast %struct.point300* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo301(%struct.point301* noalias sret(%struct.point301) align 2 %0, %struct.point301* noundef byval(%struct.point301) align 2 %1) #0 { + %3 = bitcast %struct.point301* %0 to i8* + %4 = bitcast %struct.point301* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo302(%struct.point302* noalias sret(%struct.point302) align 2 %0, %struct.point302* noundef byval(%struct.point302) align 2 %1) #0 { + %3 = bitcast %struct.point302* %0 to i8* + %4 = bitcast %struct.point302* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo303(%struct.point303* noalias sret(%struct.point303) align 2 %0, %struct.point303* noundef byval(%struct.point303) align 2 %1) #0 { + %3 = bitcast %struct.point303* %0 to i8* + %4 = bitcast %struct.point303* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo304(%struct.point304* noalias sret(%struct.point304) align 4 %0, %struct.point304* noundef byval(%struct.point304) align 4 %1) #0 { + %3 = bitcast %struct.point304* %0 to i8* + %4 = bitcast %struct.point304* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo305(%struct.point305* noalias sret(%struct.point305) align 4 %0, %struct.point305* noundef byval(%struct.point305) align 4 %1) #0 { + %3 = bitcast %struct.point305* %0 to i8* + %4 = bitcast %struct.point305* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo306(%struct.point306* noalias sret(%struct.point306) align 4 %0, %struct.point306* noundef byval(%struct.point306) align 4 %1) #0 { + %3 = bitcast %struct.point306* %0 to i8* + %4 = bitcast %struct.point306* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo307(%struct.point307* noalias sret(%struct.point307) align 4 %0, %struct.point307* noundef byval(%struct.point307) align 4 %1) #0 { + %3 = bitcast %struct.point307* %0 to i8* + %4 = bitcast %struct.point307* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo308(%struct.point308* noalias sret(%struct.point308) align 4 %0, %struct.point308* noundef byval(%struct.point308) align 4 %1) #0 { + %3 = bitcast %struct.point308* %0 to i8* + %4 = bitcast %struct.point308* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo309(%struct.point309* noalias sret(%struct.point309) align 4 %0, %struct.point309* noundef byval(%struct.point309) align 4 %1) #0 { + %3 = bitcast %struct.point309* %0 to i8* + %4 = bitcast %struct.point309* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo310(%struct.point310* noalias sret(%struct.point310) align 4 %0, %struct.point310* noundef byval(%struct.point310) align 4 %1) #0 { + %3 = bitcast %struct.point310* %0 to i8* + %4 = bitcast %struct.point310* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo311(%struct.point311* noalias sret(%struct.point311) align 4 %0, %struct.point311* noundef byval(%struct.point311) align 4 %1) #0 { + %3 = bitcast %struct.point311* %0 to i8* + %4 = bitcast %struct.point311* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo312(%struct.point312* noalias sret(%struct.point312) align 4 %0, %struct.point312* noundef byval(%struct.point312) align 4 %1) #0 { + %3 = bitcast %struct.point312* %0 to i8* + %4 = bitcast %struct.point312* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo313(%struct.point313* noalias sret(%struct.point313) align 4 %0, %struct.point313* noundef byval(%struct.point313) align 4 %1) #0 { + %3 = bitcast %struct.point313* %0 to i8* + %4 = bitcast %struct.point313* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo314(%struct.point314* noalias sret(%struct.point314) align 4 %0, %struct.point314* noundef byval(%struct.point314) align 4 %1) #0 { + %3 = bitcast %struct.point314* %0 to i8* + %4 = bitcast %struct.point314* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo315(%struct.point315* noalias sret(%struct.point315) align 4 %0, %struct.point315* noundef byval(%struct.point315) align 4 %1) #0 { + %3 = bitcast %struct.point315* %0 to i8* + %4 = bitcast %struct.point315* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo316(%struct.point316* noalias sret(%struct.point316) align 2 %0, %struct.point316* noundef byval(%struct.point316) align 2 %1) #0 { + %3 = bitcast %struct.point316* %0 to i8* + %4 = bitcast %struct.point316* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 6, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo317(%struct.point317* noalias sret(%struct.point317) align 2 %0, %struct.point317* noundef byval(%struct.point317) align 2 %1) #0 { + %3 = bitcast %struct.point317* %0 to i8* + %4 = bitcast %struct.point317* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo318(%struct.point318* noalias sret(%struct.point318) align 2 %0, %struct.point318* noundef byval(%struct.point318) align 2 %1) #0 { + %3 = bitcast %struct.point318* %0 to i8* + %4 = bitcast %struct.point318* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo319(%struct.point319* noalias sret(%struct.point319) align 2 %0, %struct.point319* noundef byval(%struct.point319) align 2 %1) #0 { + %3 = bitcast %struct.point319* %0 to i8* + %4 = bitcast %struct.point319* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo320(%struct.point320* noalias sret(%struct.point320) align 4 %0, %struct.point320* noundef byval(%struct.point320) align 4 %1) #0 { + %3 = bitcast %struct.point320* %0 to i8* + %4 = bitcast %struct.point320* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo321(%struct.point321* noalias sret(%struct.point321) align 4 %0, %struct.point321* noundef byval(%struct.point321) align 4 %1) #0 { + %3 = bitcast %struct.point321* %0 to i8* + %4 = bitcast %struct.point321* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo322(%struct.point322* noalias sret(%struct.point322) align 2 %0, %struct.point322* noundef byval(%struct.point322) align 2 %1) #0 { + %3 = bitcast %struct.point322* %0 to i8* + %4 = bitcast %struct.point322* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo323(%struct.point323* noalias sret(%struct.point323) align 2 %0, %struct.point323* noundef byval(%struct.point323) align 2 %1) #0 { + %3 = bitcast %struct.point323* %0 to i8* + %4 = bitcast %struct.point323* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo324(%struct.point324* noalias sret(%struct.point324) align 2 %0, %struct.point324* noundef byval(%struct.point324) align 2 %1) #0 { + %3 = bitcast %struct.point324* %0 to i8* + %4 = bitcast %struct.point324* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 2 %3, i8* align 2 %4, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo325(%struct.point325* noalias sret(%struct.point325) align 4 %0, %struct.point325* noundef byval(%struct.point325) align 4 %1) #0 { + %3 = bitcast %struct.point325* %0 to i8* + %4 = bitcast %struct.point325* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo326(%struct.point326* noalias sret(%struct.point326) align 4 %0, %struct.point326* noundef byval(%struct.point326) align 4 %1) #0 { + %3 = bitcast %struct.point326* %0 to i8* + %4 = bitcast %struct.point326* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo327(%struct.point327* noalias sret(%struct.point327) align 4 %0, %struct.point327* noundef byval(%struct.point327) align 4 %1) #0 { + %3 = bitcast %struct.point327* %0 to i8* + %4 = bitcast %struct.point327* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo328(%struct.point328* noalias sret(%struct.point328) align 4 %0, %struct.point328* noundef byval(%struct.point328) align 4 %1) #0 { + %3 = bitcast %struct.point328* %0 to i8* + %4 = bitcast %struct.point328* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo329(%struct.point329* noalias sret(%struct.point329) align 4 %0, %struct.point329* noundef byval(%struct.point329) align 4 %1) #0 { + %3 = bitcast %struct.point329* %0 to i8* + %4 = bitcast %struct.point329* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo330(%struct.point330* noalias sret(%struct.point330) align 4 %0, %struct.point330* noundef byval(%struct.point330) align 4 %1) #0 { + %3 = bitcast %struct.point330* %0 to i8* + %4 = bitcast %struct.point330* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo331(%struct.point331* noalias sret(%struct.point331) align 4 %0, %struct.point331* noundef byval(%struct.point331) align 4 %1) #0 { + %3 = bitcast %struct.point331* %0 to i8* + %4 = bitcast %struct.point331* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo332(%struct.point332* noalias sret(%struct.point332) align 4 %0, %struct.point332* noundef byval(%struct.point332) align 4 %1) #0 { + %3 = bitcast %struct.point332* %0 to i8* + %4 = bitcast %struct.point332* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo333(%struct.point333* noalias sret(%struct.point333) align 4 %0, %struct.point333* noundef byval(%struct.point333) align 4 %1) #0 { + %3 = bitcast %struct.point333* %0 to i8* + %4 = bitcast %struct.point333* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo334(%struct.point334* noalias sret(%struct.point334) align 4 %0, %struct.point334* noundef byval(%struct.point334) align 4 %1) #0 { + %3 = bitcast %struct.point334* %0 to i8* + %4 = bitcast %struct.point334* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo335(%struct.point335* noalias sret(%struct.point335) align 4 %0, %struct.point335* noundef byval(%struct.point335) align 4 %1) #0 { + %3 = bitcast %struct.point335* %0 to i8* + %4 = bitcast %struct.point335* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo336(%struct.point336* noalias sret(%struct.point336) align 4 %0, %struct.point336* noundef byval(%struct.point336) align 4 %1) #0 { + %3 = bitcast %struct.point336* %0 to i8* + %4 = bitcast %struct.point336* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo337(%struct.point337* noalias sret(%struct.point337) align 4 %0, %struct.point337* noundef byval(%struct.point337) align 4 %1) #0 { + %3 = bitcast %struct.point337* %0 to i8* + %4 = bitcast %struct.point337* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo338(%struct.point338* noalias sret(%struct.point338) align 4 %0, %struct.point338* noundef byval(%struct.point338) align 4 %1) #0 { + %3 = bitcast %struct.point338* %0 to i8* + %4 = bitcast %struct.point338* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo339(%struct.point339* noalias sret(%struct.point339) align 4 %0, %struct.point339* noundef byval(%struct.point339) align 4 %1) #0 { + %3 = bitcast %struct.point339* %0 to i8* + %4 = bitcast %struct.point339* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo340(%struct.point340* noalias sret(%struct.point340) align 4 %0, %struct.point340* noundef byval(%struct.point340) align 4 %1) #0 { + %3 = bitcast %struct.point340* %0 to i8* + %4 = bitcast %struct.point340* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo341(%struct.point341* noalias sret(%struct.point341) align 4 %0, %struct.point341* noundef byval(%struct.point341) align 4 %1) #0 { + %3 = bitcast %struct.point341* %0 to i8* + %4 = bitcast %struct.point341* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo342(%struct.point342* noalias sret(%struct.point342) align 4 %0, %struct.point342* noundef byval(%struct.point342) align 4 %1) #0 { + %3 = bitcast %struct.point342* %0 to i8* + %4 = bitcast %struct.point342* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo343(%struct.point343* noalias sret(%struct.point343) align 4 %0, %struct.point343* noundef byval(%struct.point343) align 4 %1) #0 { + %3 = bitcast %struct.point343* %0 to i8* + %4 = bitcast %struct.point343* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo344(%struct.point344* noalias sret(%struct.point344) align 4 %0, %struct.point344* noundef byval(%struct.point344) align 4 %1) #0 { + %3 = bitcast %struct.point344* %0 to i8* + %4 = bitcast %struct.point344* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo345(%struct.point345* noalias sret(%struct.point345) align 4 %0, %struct.point345* noundef byval(%struct.point345) align 4 %1) #0 { + %3 = bitcast %struct.point345* %0 to i8* + %4 = bitcast %struct.point345* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo346(%struct.point346* noalias sret(%struct.point346) align 4 %0, %struct.point346* noundef byval(%struct.point346) align 4 %1) #0 { + %3 = bitcast %struct.point346* %0 to i8* + %4 = bitcast %struct.point346* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo347(%struct.point347* noalias sret(%struct.point347) align 4 %0, %struct.point347* noundef byval(%struct.point347) align 4 %1) #0 { + %3 = bitcast %struct.point347* %0 to i8* + %4 = bitcast %struct.point347* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo348(%struct.point348* noalias sret(%struct.point348) align 4 %0, %struct.point348* noundef byval(%struct.point348) align 4 %1) #0 { + %3 = bitcast %struct.point348* %0 to i8* + %4 = bitcast %struct.point348* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo349(%struct.point349* noalias sret(%struct.point349) align 4 %0, %struct.point349* noundef byval(%struct.point349) align 4 %1) #0 { + %3 = bitcast %struct.point349* %0 to i8* + %4 = bitcast %struct.point349* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo350(%struct.point350* noalias sret(%struct.point350) align 4 %0, %struct.point350* noundef byval(%struct.point350) align 4 %1) #0 { + %3 = bitcast %struct.point350* %0 to i8* + %4 = bitcast %struct.point350* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo351(%struct.point351* noalias sret(%struct.point351) align 4 %0, %struct.point351* noundef byval(%struct.point351) align 4 %1) #0 { + %3 = bitcast %struct.point351* %0 to i8* + %4 = bitcast %struct.point351* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo352(%struct.point352* noalias sret(%struct.point352) align 4 %0, %struct.point352* noundef byval(%struct.point352) align 4 %1) #0 { + %3 = bitcast %struct.point352* %0 to i8* + %4 = bitcast %struct.point352* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo353(%struct.point353* noalias sret(%struct.point353) align 4 %0, %struct.point353* noundef byval(%struct.point353) align 4 %1) #0 { + %3 = bitcast %struct.point353* %0 to i8* + %4 = bitcast %struct.point353* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo354(%struct.point354* noalias sret(%struct.point354) align 4 %0, %struct.point354* noundef byval(%struct.point354) align 4 %1) #0 { + %3 = bitcast %struct.point354* %0 to i8* + %4 = bitcast %struct.point354* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo355(%struct.point355* noalias sret(%struct.point355) align 4 %0, %struct.point355* noundef byval(%struct.point355) align 4 %1) #0 { + %3 = bitcast %struct.point355* %0 to i8* + %4 = bitcast %struct.point355* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo356(%struct.point356* noalias sret(%struct.point356) align 4 %0, %struct.point356* noundef byval(%struct.point356) align 4 %1) #0 { + %3 = bitcast %struct.point356* %0 to i8* + %4 = bitcast %struct.point356* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo357(%struct.point357* noalias sret(%struct.point357) align 4 %0, %struct.point357* noundef byval(%struct.point357) align 4 %1) #0 { + %3 = bitcast %struct.point357* %0 to i8* + %4 = bitcast %struct.point357* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo358(%struct.point358* noalias sret(%struct.point358) align 4 %0, %struct.point358* noundef byval(%struct.point358) align 4 %1) #0 { + %3 = bitcast %struct.point358* %0 to i8* + %4 = bitcast %struct.point358* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo359(%struct.point359* noalias sret(%struct.point359) align 4 %0, %struct.point359* noundef byval(%struct.point359) align 4 %1) #0 { + %3 = bitcast %struct.point359* %0 to i8* + %4 = bitcast %struct.point359* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo360(%struct.point360* noalias sret(%struct.point360) align 4 %0, %struct.point360* noundef byval(%struct.point360) align 4 %1) #0 { + %3 = bitcast %struct.point360* %0 to i8* + %4 = bitcast %struct.point360* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo361(%struct.point361* noalias sret(%struct.point361) align 4 %0, %struct.point361* noundef byval(%struct.point361) align 4 %1) #0 { + %3 = bitcast %struct.point361* %0 to i8* + %4 = bitcast %struct.point361* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo362(%struct.point362* noalias sret(%struct.point362) align 4 %0, %struct.point362* noundef byval(%struct.point362) align 4 %1) #0 { + %3 = bitcast %struct.point362* %0 to i8* + %4 = bitcast %struct.point362* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo363(%struct.point363* noalias sret(%struct.point363) align 4 %0, %struct.point363* noundef byval(%struct.point363) align 4 %1) #0 { + %3 = bitcast %struct.point363* %0 to i8* + %4 = bitcast %struct.point363* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo364(%struct.point364* noalias sret(%struct.point364) align 4 %0, %struct.point364* noundef byval(%struct.point364) align 4 %1) #0 { + %3 = bitcast %struct.point364* %0 to i8* + %4 = bitcast %struct.point364* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo365(%struct.point365* noalias sret(%struct.point365) align 4 %0, %struct.point365* noundef byval(%struct.point365) align 4 %1) #0 { + %3 = bitcast %struct.point365* %0 to i8* + %4 = bitcast %struct.point365* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo366(%struct.point366* noalias sret(%struct.point366) align 4 %0, %struct.point366* noundef byval(%struct.point366) align 4 %1) #0 { + %3 = bitcast %struct.point366* %0 to i8* + %4 = bitcast %struct.point366* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo367(%struct.point367* noalias sret(%struct.point367) align 4 %0, %struct.point367* noundef byval(%struct.point367) align 4 %1) #0 { + %3 = bitcast %struct.point367* %0 to i8* + %4 = bitcast %struct.point367* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo368(%struct.point368* noalias sret(%struct.point368) align 4 %0, %struct.point368* noundef byval(%struct.point368) align 4 %1) #0 { + %3 = bitcast %struct.point368* %0 to i8* + %4 = bitcast %struct.point368* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo369(%struct.point369* noalias sret(%struct.point369) align 4 %0, %struct.point369* noundef byval(%struct.point369) align 4 %1) #0 { + %3 = bitcast %struct.point369* %0 to i8* + %4 = bitcast %struct.point369* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo370(%struct.point370* noalias sret(%struct.point370) align 4 %0, %struct.point370* noundef byval(%struct.point370) align 4 %1) #0 { + %3 = bitcast %struct.point370* %0 to i8* + %4 = bitcast %struct.point370* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo371(%struct.point371* noalias sret(%struct.point371) align 4 %0, %struct.point371* noundef byval(%struct.point371) align 4 %1) #0 { + %3 = bitcast %struct.point371* %0 to i8* + %4 = bitcast %struct.point371* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo372(%struct.point372* noalias sret(%struct.point372) align 4 %0, %struct.point372* noundef byval(%struct.point372) align 4 %1) #0 { + %3 = bitcast %struct.point372* %0 to i8* + %4 = bitcast %struct.point372* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo373(%struct.point373* noalias sret(%struct.point373) align 4 %0, %struct.point373* noundef byval(%struct.point373) align 4 %1) #0 { + %3 = bitcast %struct.point373* %0 to i8* + %4 = bitcast %struct.point373* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo374(%struct.point374* noalias sret(%struct.point374) align 4 %0, %struct.point374* noundef byval(%struct.point374) align 4 %1) #0 { + %3 = bitcast %struct.point374* %0 to i8* + %4 = bitcast %struct.point374* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo375(%struct.point375* noalias sret(%struct.point375) align 4 %0, %struct.point375* noundef byval(%struct.point375) align 4 %1) #0 { + %3 = bitcast %struct.point375* %0 to i8* + %4 = bitcast %struct.point375* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo376(%struct.point376* noalias sret(%struct.point376) align 4 %0, %struct.point376* noundef byval(%struct.point376) align 4 %1) #0 { + %3 = bitcast %struct.point376* %0 to i8* + %4 = bitcast %struct.point376* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo377(%struct.point377* noalias sret(%struct.point377) align 4 %0, %struct.point377* noundef byval(%struct.point377) align 4 %1) #0 { + %3 = bitcast %struct.point377* %0 to i8* + %4 = bitcast %struct.point377* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo378(%struct.point378* noalias sret(%struct.point378) align 4 %0, %struct.point378* noundef byval(%struct.point378) align 4 %1) #0 { + %3 = bitcast %struct.point378* %0 to i8* + %4 = bitcast %struct.point378* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo379(%struct.point379* noalias sret(%struct.point379) align 4 %0, %struct.point379* noundef byval(%struct.point379) align 4 %1) #0 { + %3 = bitcast %struct.point379* %0 to i8* + %4 = bitcast %struct.point379* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo380(%struct.point380* noalias sret(%struct.point380) align 4 %0, %struct.point380* noundef byval(%struct.point380) align 4 %1) #0 { + %3 = bitcast %struct.point380* %0 to i8* + %4 = bitcast %struct.point380* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo381(%struct.point381* noalias sret(%struct.point381) align 4 %0, %struct.point381* noundef byval(%struct.point381) align 4 %1) #0 { + %3 = bitcast %struct.point381* %0 to i8* + %4 = bitcast %struct.point381* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo382(%struct.point382* noalias sret(%struct.point382) align 4 %0, %struct.point382* noundef byval(%struct.point382) align 4 %1) #0 { + %3 = bitcast %struct.point382* %0 to i8* + %4 = bitcast %struct.point382* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo383(%struct.point383* noalias sret(%struct.point383) align 4 %0, %struct.point383* noundef byval(%struct.point383) align 4 %1) #0 { + %3 = bitcast %struct.point383* %0 to i8* + %4 = bitcast %struct.point383* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo384(%struct.point384* noalias sret(%struct.point384) align 4 %0, %struct.point384* noundef byval(%struct.point384) align 4 %1) #0 { + %3 = bitcast %struct.point384* %0 to i8* + %4 = bitcast %struct.point384* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo385(%struct.point385* noalias sret(%struct.point385) align 4 %0, %struct.point385* noundef byval(%struct.point385) align 4 %1) #0 { + %3 = bitcast %struct.point385* %0 to i8* + %4 = bitcast %struct.point385* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo386(%struct.point386* noalias sret(%struct.point386) align 4 %0, %struct.point386* noundef byval(%struct.point386) align 4 %1) #0 { + %3 = bitcast %struct.point386* %0 to i8* + %4 = bitcast %struct.point386* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo387(%struct.point387* noalias sret(%struct.point387) align 4 %0, %struct.point387* noundef byval(%struct.point387) align 4 %1) #0 { + %3 = bitcast %struct.point387* %0 to i8* + %4 = bitcast %struct.point387* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo388(%struct.point388* noalias sret(%struct.point388) align 4 %0, %struct.point388* noundef byval(%struct.point388) align 4 %1) #0 { + %3 = bitcast %struct.point388* %0 to i8* + %4 = bitcast %struct.point388* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo389(%struct.point389* noalias sret(%struct.point389) align 4 %0, %struct.point389* noundef byval(%struct.point389) align 4 %1) #0 { + %3 = bitcast %struct.point389* %0 to i8* + %4 = bitcast %struct.point389* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo390(%struct.point390* noalias sret(%struct.point390) align 4 %0, %struct.point390* noundef byval(%struct.point390) align 4 %1) #0 { + %3 = bitcast %struct.point390* %0 to i8* + %4 = bitcast %struct.point390* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo391(%struct.point391* noalias sret(%struct.point391) align 4 %0, %struct.point391* noundef byval(%struct.point391) align 4 %1) #0 { + %3 = bitcast %struct.point391* %0 to i8* + %4 = bitcast %struct.point391* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo392(%struct.point392* noalias sret(%struct.point392) align 4 %0, %struct.point392* noundef byval(%struct.point392) align 4 %1) #0 { + %3 = bitcast %struct.point392* %0 to i8* + %4 = bitcast %struct.point392* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo393(%struct.point393* noalias sret(%struct.point393) align 4 %0, %struct.point393* noundef byval(%struct.point393) align 4 %1) #0 { + %3 = bitcast %struct.point393* %0 to i8* + %4 = bitcast %struct.point393* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo394(%struct.point394* noalias sret(%struct.point394) align 4 %0, %struct.point394* noundef byval(%struct.point394) align 4 %1) #0 { + %3 = bitcast %struct.point394* %0 to i8* + %4 = bitcast %struct.point394* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo395(%struct.point395* noalias sret(%struct.point395) align 4 %0, %struct.point395* noundef byval(%struct.point395) align 4 %1) #0 { + %3 = bitcast %struct.point395* %0 to i8* + %4 = bitcast %struct.point395* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo396(%struct.point396* noalias sret(%struct.point396) align 4 %0, %struct.point396* noundef byval(%struct.point396) align 4 %1) #0 { + %3 = bitcast %struct.point396* %0 to i8* + %4 = bitcast %struct.point396* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo397(%struct.point397* noalias sret(%struct.point397) align 4 %0, %struct.point397* noundef byval(%struct.point397) align 4 %1) #0 { + %3 = bitcast %struct.point397* %0 to i8* + %4 = bitcast %struct.point397* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo398(%struct.point398* noalias sret(%struct.point398) align 4 %0, %struct.point398* noundef byval(%struct.point398) align 4 %1) #0 { + %3 = bitcast %struct.point398* %0 to i8* + %4 = bitcast %struct.point398* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo399(%struct.point399* noalias sret(%struct.point399) align 4 %0, %struct.point399* noundef byval(%struct.point399) align 4 %1) #0 { + %3 = bitcast %struct.point399* %0 to i8* + %4 = bitcast %struct.point399* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo400(%struct.point400* noalias sret(%struct.point400) align 4 %0, %struct.point400* noundef byval(%struct.point400) align 4 %1) #0 { + %3 = bitcast %struct.point400* %0 to i8* + %4 = bitcast %struct.point400* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo401(%struct.point401* noalias sret(%struct.point401) align 4 %0, %struct.point401* noundef byval(%struct.point401) align 4 %1) #0 { + %3 = bitcast %struct.point401* %0 to i8* + %4 = bitcast %struct.point401* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo402(%struct.point402* noalias sret(%struct.point402) align 4 %0, %struct.point402* noundef byval(%struct.point402) align 4 %1) #0 { + %3 = bitcast %struct.point402* %0 to i8* + %4 = bitcast %struct.point402* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo403(%struct.point403* noalias sret(%struct.point403) align 4 %0, %struct.point403* noundef byval(%struct.point403) align 4 %1) #0 { + %3 = bitcast %struct.point403* %0 to i8* + %4 = bitcast %struct.point403* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo404(%struct.point404* noalias sret(%struct.point404) align 4 %0, %struct.point404* noundef byval(%struct.point404) align 4 %1) #0 { + %3 = bitcast %struct.point404* %0 to i8* + %4 = bitcast %struct.point404* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo405(%struct.point405* noalias sret(%struct.point405) align 4 %0, %struct.point405* noundef byval(%struct.point405) align 4 %1) #0 { + %3 = bitcast %struct.point405* %0 to i8* + %4 = bitcast %struct.point405* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo406(%struct.point406* noalias sret(%struct.point406) align 4 %0, %struct.point406* noundef byval(%struct.point406) align 4 %1) #0 { + %3 = bitcast %struct.point406* %0 to i8* + %4 = bitcast %struct.point406* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo407(%struct.point407* noalias sret(%struct.point407) align 4 %0, %struct.point407* noundef byval(%struct.point407) align 4 %1) #0 { + %3 = bitcast %struct.point407* %0 to i8* + %4 = bitcast %struct.point407* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo408(%struct.point408* noalias sret(%struct.point408) align 4 %0, %struct.point408* noundef byval(%struct.point408) align 4 %1) #0 { + %3 = bitcast %struct.point408* %0 to i8* + %4 = bitcast %struct.point408* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo409(%struct.point409* noalias sret(%struct.point409) align 4 %0, %struct.point409* noundef byval(%struct.point409) align 4 %1) #0 { + %3 = bitcast %struct.point409* %0 to i8* + %4 = bitcast %struct.point409* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo410(%struct.point410* noalias sret(%struct.point410) align 4 %0, %struct.point410* noundef byval(%struct.point410) align 4 %1) #0 { + %3 = bitcast %struct.point410* %0 to i8* + %4 = bitcast %struct.point410* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo411(%struct.point411* noalias sret(%struct.point411) align 4 %0, %struct.point411* noundef byval(%struct.point411) align 4 %1) #0 { + %3 = bitcast %struct.point411* %0 to i8* + %4 = bitcast %struct.point411* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo412(%struct.point412* noalias sret(%struct.point412) align 4 %0, %struct.point412* noundef byval(%struct.point412) align 4 %1) #0 { + %3 = bitcast %struct.point412* %0 to i8* + %4 = bitcast %struct.point412* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo413(%struct.point413* noalias sret(%struct.point413) align 4 %0, %struct.point413* noundef byval(%struct.point413) align 4 %1) #0 { + %3 = bitcast %struct.point413* %0 to i8* + %4 = bitcast %struct.point413* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo414(%struct.point414* noalias sret(%struct.point414) align 4 %0, %struct.point414* noundef byval(%struct.point414) align 4 %1) #0 { + %3 = bitcast %struct.point414* %0 to i8* + %4 = bitcast %struct.point414* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo415(%struct.point415* noalias sret(%struct.point415) align 4 %0, %struct.point415* noundef byval(%struct.point415) align 4 %1) #0 { + %3 = bitcast %struct.point415* %0 to i8* + %4 = bitcast %struct.point415* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo416(%struct.point416* noalias sret(%struct.point416) align 4 %0, %struct.point416* noundef byval(%struct.point416) align 4 %1) #0 { + %3 = bitcast %struct.point416* %0 to i8* + %4 = bitcast %struct.point416* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo417(%struct.point417* noalias sret(%struct.point417) align 4 %0, %struct.point417* noundef byval(%struct.point417) align 4 %1) #0 { + %3 = bitcast %struct.point417* %0 to i8* + %4 = bitcast %struct.point417* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo418(%struct.point418* noalias sret(%struct.point418) align 4 %0, %struct.point418* noundef byval(%struct.point418) align 4 %1) #0 { + %3 = bitcast %struct.point418* %0 to i8* + %4 = bitcast %struct.point418* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo419(%struct.point419* noalias sret(%struct.point419) align 4 %0, %struct.point419* noundef byval(%struct.point419) align 4 %1) #0 { + %3 = bitcast %struct.point419* %0 to i8* + %4 = bitcast %struct.point419* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo420(%struct.point420* noalias sret(%struct.point420) align 4 %0, %struct.point420* noundef byval(%struct.point420) align 4 %1) #0 { + %3 = bitcast %struct.point420* %0 to i8* + %4 = bitcast %struct.point420* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo421(%struct.point421* noalias sret(%struct.point421) align 4 %0, %struct.point421* noundef byval(%struct.point421) align 4 %1) #0 { + %3 = bitcast %struct.point421* %0 to i8* + %4 = bitcast %struct.point421* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo422(%struct.point422* noalias sret(%struct.point422) align 4 %0, %struct.point422* noundef byval(%struct.point422) align 4 %1) #0 { + %3 = bitcast %struct.point422* %0 to i8* + %4 = bitcast %struct.point422* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo423(%struct.point423* noalias sret(%struct.point423) align 4 %0, %struct.point423* noundef byval(%struct.point423) align 4 %1) #0 { + %3 = bitcast %struct.point423* %0 to i8* + %4 = bitcast %struct.point423* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo424(%struct.point424* noalias sret(%struct.point424) align 4 %0, %struct.point424* noundef byval(%struct.point424) align 4 %1) #0 { + %3 = bitcast %struct.point424* %0 to i8* + %4 = bitcast %struct.point424* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo425(%struct.point425* noalias sret(%struct.point425) align 4 %0, %struct.point425* noundef byval(%struct.point425) align 4 %1) #0 { + %3 = bitcast %struct.point425* %0 to i8* + %4 = bitcast %struct.point425* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo426(%struct.point426* noalias sret(%struct.point426) align 4 %0, %struct.point426* noundef byval(%struct.point426) align 4 %1) #0 { + %3 = bitcast %struct.point426* %0 to i8* + %4 = bitcast %struct.point426* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo427(%struct.point427* noalias sret(%struct.point427) align 4 %0, %struct.point427* noundef byval(%struct.point427) align 4 %1) #0 { + %3 = bitcast %struct.point427* %0 to i8* + %4 = bitcast %struct.point427* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo428(%struct.point428* noalias sret(%struct.point428) align 4 %0, %struct.point428* noundef byval(%struct.point428) align 4 %1) #0 { + %3 = bitcast %struct.point428* %0 to i8* + %4 = bitcast %struct.point428* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo429(%struct.point429* noalias sret(%struct.point429) align 4 %0, %struct.point429* noundef byval(%struct.point429) align 4 %1) #0 { + %3 = bitcast %struct.point429* %0 to i8* + %4 = bitcast %struct.point429* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo430(%struct.point430* noalias sret(%struct.point430) align 4 %0, %struct.point430* noundef byval(%struct.point430) align 4 %1) #0 { + %3 = bitcast %struct.point430* %0 to i8* + %4 = bitcast %struct.point430* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo431(%struct.point431* noalias sret(%struct.point431) align 4 %0, %struct.point431* noundef byval(%struct.point431) align 4 %1) #0 { + %3 = bitcast %struct.point431* %0 to i8* + %4 = bitcast %struct.point431* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo432(%struct.point432* noalias sret(%struct.point432) align 4 %0, %struct.point432* noundef byval(%struct.point432) align 4 %1) #0 { + %3 = bitcast %struct.point432* %0 to i8* + %4 = bitcast %struct.point432* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo433(%struct.point433* noalias sret(%struct.point433) align 4 %0, %struct.point433* noundef byval(%struct.point433) align 4 %1) #0 { + %3 = bitcast %struct.point433* %0 to i8* + %4 = bitcast %struct.point433* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo434(%struct.point434* noalias sret(%struct.point434) align 4 %0, %struct.point434* noundef byval(%struct.point434) align 4 %1) #0 { + %3 = bitcast %struct.point434* %0 to i8* + %4 = bitcast %struct.point434* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo435(%struct.point435* noalias sret(%struct.point435) align 4 %0, %struct.point435* noundef byval(%struct.point435) align 4 %1) #0 { + %3 = bitcast %struct.point435* %0 to i8* + %4 = bitcast %struct.point435* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo436(%struct.point436* noalias sret(%struct.point436) align 4 %0, %struct.point436* noundef byval(%struct.point436) align 4 %1) #0 { + %3 = bitcast %struct.point436* %0 to i8* + %4 = bitcast %struct.point436* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo437(%struct.point437* noalias sret(%struct.point437) align 4 %0, %struct.point437* noundef byval(%struct.point437) align 4 %1) #0 { + %3 = bitcast %struct.point437* %0 to i8* + %4 = bitcast %struct.point437* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo438(%struct.point438* noalias sret(%struct.point438) align 4 %0, %struct.point438* noundef byval(%struct.point438) align 4 %1) #0 { + %3 = bitcast %struct.point438* %0 to i8* + %4 = bitcast %struct.point438* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo439(%struct.point439* noalias sret(%struct.point439) align 4 %0, %struct.point439* noundef byval(%struct.point439) align 4 %1) #0 { + %3 = bitcast %struct.point439* %0 to i8* + %4 = bitcast %struct.point439* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo440(%struct.point440* noalias sret(%struct.point440) align 4 %0, %struct.point440* noundef byval(%struct.point440) align 4 %1) #0 { + %3 = bitcast %struct.point440* %0 to i8* + %4 = bitcast %struct.point440* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo441(%struct.point441* noalias sret(%struct.point441) align 4 %0, %struct.point441* noundef byval(%struct.point441) align 4 %1) #0 { + %3 = bitcast %struct.point441* %0 to i8* + %4 = bitcast %struct.point441* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo442(%struct.point442* noalias sret(%struct.point442) align 4 %0, %struct.point442* noundef byval(%struct.point442) align 4 %1) #0 { + %3 = bitcast %struct.point442* %0 to i8* + %4 = bitcast %struct.point442* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo443(%struct.point443* noalias sret(%struct.point443) align 4 %0, %struct.point443* noundef byval(%struct.point443) align 4 %1) #0 { + %3 = bitcast %struct.point443* %0 to i8* + %4 = bitcast %struct.point443* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo444(%struct.point444* noalias sret(%struct.point444) align 4 %0, %struct.point444* noundef byval(%struct.point444) align 4 %1) #0 { + %3 = bitcast %struct.point444* %0 to i8* + %4 = bitcast %struct.point444* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo445(%struct.point445* noalias sret(%struct.point445) align 4 %0, %struct.point445* noundef byval(%struct.point445) align 4 %1) #0 { + %3 = bitcast %struct.point445* %0 to i8* + %4 = bitcast %struct.point445* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo446(%struct.point446* noalias sret(%struct.point446) align 4 %0, %struct.point446* noundef byval(%struct.point446) align 4 %1) #0 { + %3 = bitcast %struct.point446* %0 to i8* + %4 = bitcast %struct.point446* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo447(%struct.point447* noalias sret(%struct.point447) align 4 %0, %struct.point447* noundef byval(%struct.point447) align 4 %1) #0 { + %3 = bitcast %struct.point447* %0 to i8* + %4 = bitcast %struct.point447* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo448(%struct.point448* noalias sret(%struct.point448) align 4 %0, %struct.point448* noundef byval(%struct.point448) align 4 %1) #0 { + %3 = bitcast %struct.point448* %0 to i8* + %4 = bitcast %struct.point448* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo449(%struct.point449* noalias sret(%struct.point449) align 4 %0, %struct.point449* noundef byval(%struct.point449) align 4 %1) #0 { + %3 = bitcast %struct.point449* %0 to i8* + %4 = bitcast %struct.point449* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo450(%struct.point450* noalias sret(%struct.point450) align 4 %0, %struct.point450* noundef byval(%struct.point450) align 4 %1) #0 { + %3 = bitcast %struct.point450* %0 to i8* + %4 = bitcast %struct.point450* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo451(%struct.point451* noalias sret(%struct.point451) align 4 %0, %struct.point451* noundef byval(%struct.point451) align 4 %1) #0 { + %3 = bitcast %struct.point451* %0 to i8* + %4 = bitcast %struct.point451* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo452(%struct.point452* noalias sret(%struct.point452) align 4 %0, %struct.point452* noundef byval(%struct.point452) align 4 %1) #0 { + %3 = bitcast %struct.point452* %0 to i8* + %4 = bitcast %struct.point452* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo453(%struct.point453* noalias sret(%struct.point453) align 4 %0, %struct.point453* noundef byval(%struct.point453) align 4 %1) #0 { + %3 = bitcast %struct.point453* %0 to i8* + %4 = bitcast %struct.point453* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo454(%struct.point454* noalias sret(%struct.point454) align 4 %0, %struct.point454* noundef byval(%struct.point454) align 4 %1) #0 { + %3 = bitcast %struct.point454* %0 to i8* + %4 = bitcast %struct.point454* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo455(%struct.point455* noalias sret(%struct.point455) align 4 %0, %struct.point455* noundef byval(%struct.point455) align 4 %1) #0 { + %3 = bitcast %struct.point455* %0 to i8* + %4 = bitcast %struct.point455* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo456(%struct.point456* noalias sret(%struct.point456) align 4 %0, %struct.point456* noundef byval(%struct.point456) align 4 %1) #0 { + %3 = bitcast %struct.point456* %0 to i8* + %4 = bitcast %struct.point456* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo457(%struct.point457* noalias sret(%struct.point457) align 4 %0, %struct.point457* noundef byval(%struct.point457) align 4 %1) #0 { + %3 = bitcast %struct.point457* %0 to i8* + %4 = bitcast %struct.point457* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo458(%struct.point458* noalias sret(%struct.point458) align 4 %0, %struct.point458* noundef byval(%struct.point458) align 4 %1) #0 { + %3 = bitcast %struct.point458* %0 to i8* + %4 = bitcast %struct.point458* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo459(%struct.point459* noalias sret(%struct.point459) align 4 %0, %struct.point459* noundef byval(%struct.point459) align 4 %1) #0 { + %3 = bitcast %struct.point459* %0 to i8* + %4 = bitcast %struct.point459* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo460(%struct.point460* noalias sret(%struct.point460) align 4 %0, %struct.point460* noundef byval(%struct.point460) align 4 %1) #0 { + %3 = bitcast %struct.point460* %0 to i8* + %4 = bitcast %struct.point460* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo461(%struct.point461* noalias sret(%struct.point461) align 4 %0, %struct.point461* noundef byval(%struct.point461) align 4 %1) #0 { + %3 = bitcast %struct.point461* %0 to i8* + %4 = bitcast %struct.point461* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo462(%struct.point462* noalias sret(%struct.point462) align 4 %0, %struct.point462* noundef byval(%struct.point462) align 4 %1) #0 { + %3 = bitcast %struct.point462* %0 to i8* + %4 = bitcast %struct.point462* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo463(%struct.point463* noalias sret(%struct.point463) align 4 %0, %struct.point463* noundef byval(%struct.point463) align 4 %1) #0 { + %3 = bitcast %struct.point463* %0 to i8* + %4 = bitcast %struct.point463* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo464(%struct.point464* noalias sret(%struct.point464) align 4 %0, %struct.point464* noundef byval(%struct.point464) align 4 %1) #0 { + %3 = bitcast %struct.point464* %0 to i8* + %4 = bitcast %struct.point464* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo465(%struct.point465* noalias sret(%struct.point465) align 4 %0, %struct.point465* noundef byval(%struct.point465) align 4 %1) #0 { + %3 = bitcast %struct.point465* %0 to i8* + %4 = bitcast %struct.point465* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo466(%struct.point466* noalias sret(%struct.point466) align 4 %0, %struct.point466* noundef byval(%struct.point466) align 4 %1) #0 { + %3 = bitcast %struct.point466* %0 to i8* + %4 = bitcast %struct.point466* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo467(%struct.point467* noalias sret(%struct.point467) align 4 %0, %struct.point467* noundef byval(%struct.point467) align 4 %1) #0 { + %3 = bitcast %struct.point467* %0 to i8* + %4 = bitcast %struct.point467* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo468(%struct.point468* noalias sret(%struct.point468) align 4 %0, %struct.point468* noundef byval(%struct.point468) align 4 %1) #0 { + %3 = bitcast %struct.point468* %0 to i8* + %4 = bitcast %struct.point468* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo469(%struct.point469* noalias sret(%struct.point469) align 4 %0, %struct.point469* noundef byval(%struct.point469) align 4 %1) #0 { + %3 = bitcast %struct.point469* %0 to i8* + %4 = bitcast %struct.point469* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo470(%struct.point470* noalias sret(%struct.point470) align 4 %0, %struct.point470* noundef byval(%struct.point470) align 4 %1) #0 { + %3 = bitcast %struct.point470* %0 to i8* + %4 = bitcast %struct.point470* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo471(%struct.point471* noalias sret(%struct.point471) align 4 %0, %struct.point471* noundef byval(%struct.point471) align 4 %1) #0 { + %3 = bitcast %struct.point471* %0 to i8* + %4 = bitcast %struct.point471* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo472(%struct.point472* noalias sret(%struct.point472) align 4 %0, %struct.point472* noundef byval(%struct.point472) align 4 %1) #0 { + %3 = bitcast %struct.point472* %0 to i8* + %4 = bitcast %struct.point472* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo473(%struct.point473* noalias sret(%struct.point473) align 4 %0, %struct.point473* noundef byval(%struct.point473) align 4 %1) #0 { + %3 = bitcast %struct.point473* %0 to i8* + %4 = bitcast %struct.point473* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo474(%struct.point474* noalias sret(%struct.point474) align 4 %0, %struct.point474* noundef byval(%struct.point474) align 4 %1) #0 { + %3 = bitcast %struct.point474* %0 to i8* + %4 = bitcast %struct.point474* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo475(%struct.point475* noalias sret(%struct.point475) align 4 %0, %struct.point475* noundef byval(%struct.point475) align 4 %1) #0 { + %3 = bitcast %struct.point475* %0 to i8* + %4 = bitcast %struct.point475* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo476(%struct.point476* noalias sret(%struct.point476) align 4 %0, %struct.point476* noundef byval(%struct.point476) align 4 %1) #0 { + %3 = bitcast %struct.point476* %0 to i8* + %4 = bitcast %struct.point476* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo477(%struct.point477* noalias sret(%struct.point477) align 4 %0, %struct.point477* noundef byval(%struct.point477) align 4 %1) #0 { + %3 = bitcast %struct.point477* %0 to i8* + %4 = bitcast %struct.point477* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo478(%struct.point478* noalias sret(%struct.point478) align 4 %0, %struct.point478* noundef byval(%struct.point478) align 4 %1) #0 { + %3 = bitcast %struct.point478* %0 to i8* + %4 = bitcast %struct.point478* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo479(%struct.point479* noalias sret(%struct.point479) align 4 %0, %struct.point479* noundef byval(%struct.point479) align 4 %1) #0 { + %3 = bitcast %struct.point479* %0 to i8* + %4 = bitcast %struct.point479* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo480(%struct.point480* noalias sret(%struct.point480) align 4 %0, %struct.point480* noundef byval(%struct.point480) align 4 %1) #0 { + %3 = bitcast %struct.point480* %0 to i8* + %4 = bitcast %struct.point480* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo481(%struct.point481* noalias sret(%struct.point481) align 4 %0, %struct.point481* noundef byval(%struct.point481) align 4 %1) #0 { + %3 = bitcast %struct.point481* %0 to i8* + %4 = bitcast %struct.point481* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo482(%struct.point482* noalias sret(%struct.point482) align 4 %0, %struct.point482* noundef byval(%struct.point482) align 4 %1) #0 { + %3 = bitcast %struct.point482* %0 to i8* + %4 = bitcast %struct.point482* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo483(%struct.point483* noalias sret(%struct.point483) align 4 %0, %struct.point483* noundef byval(%struct.point483) align 4 %1) #0 { + %3 = bitcast %struct.point483* %0 to i8* + %4 = bitcast %struct.point483* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo484(%struct.point484* noalias sret(%struct.point484) align 4 %0, %struct.point484* noundef byval(%struct.point484) align 4 %1) #0 { + %3 = bitcast %struct.point484* %0 to i8* + %4 = bitcast %struct.point484* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo485(%struct.point485* noalias sret(%struct.point485) align 4 %0, %struct.point485* noundef byval(%struct.point485) align 4 %1) #0 { + %3 = bitcast %struct.point485* %0 to i8* + %4 = bitcast %struct.point485* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo486(%struct.point486* noalias sret(%struct.point486) align 4 %0, %struct.point486* noundef byval(%struct.point486) align 4 %1) #0 { + %3 = bitcast %struct.point486* %0 to i8* + %4 = bitcast %struct.point486* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo487(%struct.point487* noalias sret(%struct.point487) align 4 %0, %struct.point487* noundef byval(%struct.point487) align 4 %1) #0 { + %3 = bitcast %struct.point487* %0 to i8* + %4 = bitcast %struct.point487* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo488(%struct.point488* noalias sret(%struct.point488) align 4 %0, %struct.point488* noundef byval(%struct.point488) align 4 %1) #0 { + %3 = bitcast %struct.point488* %0 to i8* + %4 = bitcast %struct.point488* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo489(%struct.point489* noalias sret(%struct.point489) align 4 %0, %struct.point489* noundef byval(%struct.point489) align 4 %1) #0 { + %3 = bitcast %struct.point489* %0 to i8* + %4 = bitcast %struct.point489* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo490(%struct.point490* noalias sret(%struct.point490) align 4 %0, %struct.point490* noundef byval(%struct.point490) align 4 %1) #0 { + %3 = bitcast %struct.point490* %0 to i8* + %4 = bitcast %struct.point490* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo491(%struct.point491* noalias sret(%struct.point491) align 4 %0, %struct.point491* noundef byval(%struct.point491) align 4 %1) #0 { + %3 = bitcast %struct.point491* %0 to i8* + %4 = bitcast %struct.point491* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo492(%struct.point492* noalias sret(%struct.point492) align 4 %0, %struct.point492* noundef byval(%struct.point492) align 4 %1) #0 { + %3 = bitcast %struct.point492* %0 to i8* + %4 = bitcast %struct.point492* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo493(%struct.point493* noalias sret(%struct.point493) align 4 %0, %struct.point493* noundef byval(%struct.point493) align 4 %1) #0 { + %3 = bitcast %struct.point493* %0 to i8* + %4 = bitcast %struct.point493* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo494(%struct.point494* noalias sret(%struct.point494) align 4 %0, %struct.point494* noundef byval(%struct.point494) align 4 %1) #0 { + %3 = bitcast %struct.point494* %0 to i8* + %4 = bitcast %struct.point494* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo495(%struct.point495* noalias sret(%struct.point495) align 4 %0, %struct.point495* noundef byval(%struct.point495) align 4 %1) #0 { + %3 = bitcast %struct.point495* %0 to i8* + %4 = bitcast %struct.point495* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo496(%struct.point496* noalias sret(%struct.point496) align 4 %0, %struct.point496* noundef byval(%struct.point496) align 4 %1) #0 { + %3 = bitcast %struct.point496* %0 to i8* + %4 = bitcast %struct.point496* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo497(%struct.point497* noalias sret(%struct.point497) align 4 %0, %struct.point497* noundef byval(%struct.point497) align 4 %1) #0 { + %3 = bitcast %struct.point497* %0 to i8* + %4 = bitcast %struct.point497* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo498(%struct.point498* noalias sret(%struct.point498) align 4 %0, %struct.point498* noundef byval(%struct.point498) align 4 %1) #0 { + %3 = bitcast %struct.point498* %0 to i8* + %4 = bitcast %struct.point498* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo499(%struct.point499* noalias sret(%struct.point499) align 4 %0, %struct.point499* noundef byval(%struct.point499) align 4 %1) #0 { + %3 = bitcast %struct.point499* %0 to i8* + %4 = bitcast %struct.point499* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo500(%struct.point500* noalias sret(%struct.point500) align 4 %0, %struct.point500* noundef byval(%struct.point500) align 4 %1) #0 { + %3 = bitcast %struct.point500* %0 to i8* + %4 = bitcast %struct.point500* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo501(%struct.point501* noalias sret(%struct.point501) align 4 %0, %struct.point501* noundef byval(%struct.point501) align 4 %1) #0 { + %3 = bitcast %struct.point501* %0 to i8* + %4 = bitcast %struct.point501* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo502(%struct.point502* noalias sret(%struct.point502) align 4 %0, %struct.point502* noundef byval(%struct.point502) align 4 %1) #0 { + %3 = bitcast %struct.point502* %0 to i8* + %4 = bitcast %struct.point502* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo503(%struct.point503* noalias sret(%struct.point503) align 4 %0, %struct.point503* noundef byval(%struct.point503) align 4 %1) #0 { + %3 = bitcast %struct.point503* %0 to i8* + %4 = bitcast %struct.point503* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo504(%struct.point504* noalias sret(%struct.point504) align 4 %0, %struct.point504* noundef byval(%struct.point504) align 4 %1) #0 { + %3 = bitcast %struct.point504* %0 to i8* + %4 = bitcast %struct.point504* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo505(%struct.point505* noalias sret(%struct.point505) align 4 %0, %struct.point505* noundef byval(%struct.point505) align 4 %1) #0 { + %3 = bitcast %struct.point505* %0 to i8* + %4 = bitcast %struct.point505* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo506(%struct.point506* noalias sret(%struct.point506) align 4 %0, %struct.point506* noundef byval(%struct.point506) align 4 %1) #0 { + %3 = bitcast %struct.point506* %0 to i8* + %4 = bitcast %struct.point506* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo507(%struct.point507* noalias sret(%struct.point507) align 4 %0, %struct.point507* noundef byval(%struct.point507) align 4 %1) #0 { + %3 = bitcast %struct.point507* %0 to i8* + %4 = bitcast %struct.point507* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo508(%struct.point508* noalias sret(%struct.point508) align 4 %0, %struct.point508* noundef byval(%struct.point508) align 4 %1) #0 { + %3 = bitcast %struct.point508* %0 to i8* + %4 = bitcast %struct.point508* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo509(%struct.point509* noalias sret(%struct.point509) align 4 %0, %struct.point509* noundef byval(%struct.point509) align 4 %1) #0 { + %3 = bitcast %struct.point509* %0 to i8* + %4 = bitcast %struct.point509* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo510(%struct.point510* noalias sret(%struct.point510) align 4 %0, %struct.point510* noundef byval(%struct.point510) align 4 %1) #0 { + %3 = bitcast %struct.point510* %0 to i8* + %4 = bitcast %struct.point510* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo511(%struct.point511* noalias sret(%struct.point511) align 4 %0, %struct.point511* noundef byval(%struct.point511) align 4 %1) #0 { + %3 = bitcast %struct.point511* %0 to i8* + %4 = bitcast %struct.point511* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo512(%struct.point512* noalias sret(%struct.point512) align 4 %0, %struct.point512* noundef byval(%struct.point512) align 4 %1) #0 { + %3 = bitcast %struct.point512* %0 to i8* + %4 = bitcast %struct.point512* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo513(%struct.point513* noalias sret(%struct.point513) align 4 %0, %struct.point513* noundef byval(%struct.point513) align 4 %1) #0 { + %3 = bitcast %struct.point513* %0 to i8* + %4 = bitcast %struct.point513* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo514(%struct.point514* noalias sret(%struct.point514) align 4 %0, %struct.point514* noundef byval(%struct.point514) align 4 %1) #0 { + %3 = bitcast %struct.point514* %0 to i8* + %4 = bitcast %struct.point514* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo515(%struct.point515* noalias sret(%struct.point515) align 4 %0, %struct.point515* noundef byval(%struct.point515) align 4 %1) #0 { + %3 = bitcast %struct.point515* %0 to i8* + %4 = bitcast %struct.point515* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo516(%struct.point516* noalias sret(%struct.point516) align 4 %0, %struct.point516* noundef byval(%struct.point516) align 4 %1) #0 { + %3 = bitcast %struct.point516* %0 to i8* + %4 = bitcast %struct.point516* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo517(%struct.point517* noalias sret(%struct.point517) align 4 %0, %struct.point517* noundef byval(%struct.point517) align 4 %1) #0 { + %3 = bitcast %struct.point517* %0 to i8* + %4 = bitcast %struct.point517* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo518(%struct.point518* noalias sret(%struct.point518) align 4 %0, %struct.point518* noundef byval(%struct.point518) align 4 %1) #0 { + %3 = bitcast %struct.point518* %0 to i8* + %4 = bitcast %struct.point518* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo519(%struct.point519* noalias sret(%struct.point519) align 4 %0, %struct.point519* noundef byval(%struct.point519) align 4 %1) #0 { + %3 = bitcast %struct.point519* %0 to i8* + %4 = bitcast %struct.point519* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo520(%struct.point520* noalias sret(%struct.point520) align 4 %0, %struct.point520* noundef byval(%struct.point520) align 4 %1) #0 { + %3 = bitcast %struct.point520* %0 to i8* + %4 = bitcast %struct.point520* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo521(%struct.point521* noalias sret(%struct.point521) align 4 %0, %struct.point521* noundef byval(%struct.point521) align 4 %1) #0 { + %3 = bitcast %struct.point521* %0 to i8* + %4 = bitcast %struct.point521* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo522(%struct.point522* noalias sret(%struct.point522) align 4 %0, %struct.point522* noundef byval(%struct.point522) align 4 %1) #0 { + %3 = bitcast %struct.point522* %0 to i8* + %4 = bitcast %struct.point522* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo523(%struct.point523* noalias sret(%struct.point523) align 4 %0, %struct.point523* noundef byval(%struct.point523) align 4 %1) #0 { + %3 = bitcast %struct.point523* %0 to i8* + %4 = bitcast %struct.point523* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo524(%struct.point524* noalias sret(%struct.point524) align 4 %0, %struct.point524* noundef byval(%struct.point524) align 4 %1) #0 { + %3 = bitcast %struct.point524* %0 to i8* + %4 = bitcast %struct.point524* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo525(%struct.point525* noalias sret(%struct.point525) align 4 %0, %struct.point525* noundef byval(%struct.point525) align 4 %1) #0 { + %3 = bitcast %struct.point525* %0 to i8* + %4 = bitcast %struct.point525* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo526(%struct.point526* noalias sret(%struct.point526) align 4 %0, %struct.point526* noundef byval(%struct.point526) align 4 %1) #0 { + %3 = bitcast %struct.point526* %0 to i8* + %4 = bitcast %struct.point526* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo527(%struct.point527* noalias sret(%struct.point527) align 4 %0, %struct.point527* noundef byval(%struct.point527) align 4 %1) #0 { + %3 = bitcast %struct.point527* %0 to i8* + %4 = bitcast %struct.point527* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo528(%struct.point528* noalias sret(%struct.point528) align 4 %0, %struct.point528* noundef byval(%struct.point528) align 4 %1) #0 { + %3 = bitcast %struct.point528* %0 to i8* + %4 = bitcast %struct.point528* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo529(%struct.point529* noalias sret(%struct.point529) align 4 %0, %struct.point529* noundef byval(%struct.point529) align 4 %1) #0 { + %3 = bitcast %struct.point529* %0 to i8* + %4 = bitcast %struct.point529* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo530(%struct.point530* noalias sret(%struct.point530) align 4 %0, %struct.point530* noundef byval(%struct.point530) align 4 %1) #0 { + %3 = bitcast %struct.point530* %0 to i8* + %4 = bitcast %struct.point530* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo531(%struct.point531* noalias sret(%struct.point531) align 4 %0, %struct.point531* noundef byval(%struct.point531) align 4 %1) #0 { + %3 = bitcast %struct.point531* %0 to i8* + %4 = bitcast %struct.point531* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo532(%struct.point532* noalias sret(%struct.point532) align 4 %0, %struct.point532* noundef byval(%struct.point532) align 4 %1) #0 { + %3 = bitcast %struct.point532* %0 to i8* + %4 = bitcast %struct.point532* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo533(%struct.point533* noalias sret(%struct.point533) align 4 %0, %struct.point533* noundef byval(%struct.point533) align 4 %1) #0 { + %3 = bitcast %struct.point533* %0 to i8* + %4 = bitcast %struct.point533* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo534(%struct.point534* noalias sret(%struct.point534) align 4 %0, %struct.point534* noundef byval(%struct.point534) align 4 %1) #0 { + %3 = bitcast %struct.point534* %0 to i8* + %4 = bitcast %struct.point534* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo535(%struct.point535* noalias sret(%struct.point535) align 4 %0, %struct.point535* noundef byval(%struct.point535) align 4 %1) #0 { + %3 = bitcast %struct.point535* %0 to i8* + %4 = bitcast %struct.point535* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo536(%struct.point536* noalias sret(%struct.point536) align 4 %0, %struct.point536* noundef byval(%struct.point536) align 4 %1) #0 { + %3 = bitcast %struct.point536* %0 to i8* + %4 = bitcast %struct.point536* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo537(%struct.point537* noalias sret(%struct.point537) align 4 %0, %struct.point537* noundef byval(%struct.point537) align 4 %1) #0 { + %3 = bitcast %struct.point537* %0 to i8* + %4 = bitcast %struct.point537* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo538(%struct.point538* noalias sret(%struct.point538) align 4 %0, %struct.point538* noundef byval(%struct.point538) align 4 %1) #0 { + %3 = bitcast %struct.point538* %0 to i8* + %4 = bitcast %struct.point538* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo539(%struct.point539* noalias sret(%struct.point539) align 4 %0, %struct.point539* noundef byval(%struct.point539) align 4 %1) #0 { + %3 = bitcast %struct.point539* %0 to i8* + %4 = bitcast %struct.point539* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo540(%struct.point540* noalias sret(%struct.point540) align 4 %0, %struct.point540* noundef byval(%struct.point540) align 4 %1) #0 { + %3 = bitcast %struct.point540* %0 to i8* + %4 = bitcast %struct.point540* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo541(%struct.point541* noalias sret(%struct.point541) align 4 %0, %struct.point541* noundef byval(%struct.point541) align 4 %1) #0 { + %3 = bitcast %struct.point541* %0 to i8* + %4 = bitcast %struct.point541* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo542(%struct.point542* noalias sret(%struct.point542) align 4 %0, %struct.point542* noundef byval(%struct.point542) align 4 %1) #0 { + %3 = bitcast %struct.point542* %0 to i8* + %4 = bitcast %struct.point542* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo543(%struct.point543* noalias sret(%struct.point543) align 4 %0, %struct.point543* noundef byval(%struct.point543) align 4 %1) #0 { + %3 = bitcast %struct.point543* %0 to i8* + %4 = bitcast %struct.point543* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo544(%struct.point544* noalias sret(%struct.point544) align 4 %0, %struct.point544* noundef byval(%struct.point544) align 4 %1) #0 { + %3 = bitcast %struct.point544* %0 to i8* + %4 = bitcast %struct.point544* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo545(%struct.point545* noalias sret(%struct.point545) align 4 %0, %struct.point545* noundef byval(%struct.point545) align 4 %1) #0 { + %3 = bitcast %struct.point545* %0 to i8* + %4 = bitcast %struct.point545* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo546(%struct.point546* noalias sret(%struct.point546) align 4 %0, %struct.point546* noundef byval(%struct.point546) align 4 %1) #0 { + %3 = bitcast %struct.point546* %0 to i8* + %4 = bitcast %struct.point546* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo547(%struct.point547* noalias sret(%struct.point547) align 4 %0, %struct.point547* noundef byval(%struct.point547) align 4 %1) #0 { + %3 = bitcast %struct.point547* %0 to i8* + %4 = bitcast %struct.point547* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo548(%struct.point548* noalias sret(%struct.point548) align 4 %0, %struct.point548* noundef byval(%struct.point548) align 4 %1) #0 { + %3 = bitcast %struct.point548* %0 to i8* + %4 = bitcast %struct.point548* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo549(%struct.point549* noalias sret(%struct.point549) align 4 %0, %struct.point549* noundef byval(%struct.point549) align 4 %1) #0 { + %3 = bitcast %struct.point549* %0 to i8* + %4 = bitcast %struct.point549* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo550(%struct.point550* noalias sret(%struct.point550) align 4 %0, %struct.point550* noundef byval(%struct.point550) align 4 %1) #0 { + %3 = bitcast %struct.point550* %0 to i8* + %4 = bitcast %struct.point550* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo551(%struct.point551* noalias sret(%struct.point551) align 4 %0, %struct.point551* noundef byval(%struct.point551) align 4 %1) #0 { + %3 = bitcast %struct.point551* %0 to i8* + %4 = bitcast %struct.point551* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo552(%struct.point552* noalias sret(%struct.point552) align 4 %0, %struct.point552* noundef byval(%struct.point552) align 4 %1) #0 { + %3 = bitcast %struct.point552* %0 to i8* + %4 = bitcast %struct.point552* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo553(%struct.point553* noalias sret(%struct.point553) align 4 %0, %struct.point553* noundef byval(%struct.point553) align 4 %1) #0 { + %3 = bitcast %struct.point553* %0 to i8* + %4 = bitcast %struct.point553* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo554(%struct.point554* noalias sret(%struct.point554) align 4 %0, %struct.point554* noundef byval(%struct.point554) align 4 %1) #0 { + %3 = bitcast %struct.point554* %0 to i8* + %4 = bitcast %struct.point554* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo555(%struct.point555* noalias sret(%struct.point555) align 4 %0, %struct.point555* noundef byval(%struct.point555) align 4 %1) #0 { + %3 = bitcast %struct.point555* %0 to i8* + %4 = bitcast %struct.point555* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo556(%struct.point556* noalias sret(%struct.point556) align 4 %0, %struct.point556* noundef byval(%struct.point556) align 4 %1) #0 { + %3 = bitcast %struct.point556* %0 to i8* + %4 = bitcast %struct.point556* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo557(%struct.point557* noalias sret(%struct.point557) align 4 %0, %struct.point557* noundef byval(%struct.point557) align 4 %1) #0 { + %3 = bitcast %struct.point557* %0 to i8* + %4 = bitcast %struct.point557* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo558(%struct.point558* noalias sret(%struct.point558) align 4 %0, %struct.point558* noundef byval(%struct.point558) align 4 %1) #0 { + %3 = bitcast %struct.point558* %0 to i8* + %4 = bitcast %struct.point558* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo559(%struct.point559* noalias sret(%struct.point559) align 4 %0, %struct.point559* noundef byval(%struct.point559) align 4 %1) #0 { + %3 = bitcast %struct.point559* %0 to i8* + %4 = bitcast %struct.point559* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo560(%struct.point560* noalias sret(%struct.point560) align 4 %0, %struct.point560* noundef byval(%struct.point560) align 4 %1) #0 { + %3 = bitcast %struct.point560* %0 to i8* + %4 = bitcast %struct.point560* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo561(%struct.point561* noalias sret(%struct.point561) align 4 %0, %struct.point561* noundef byval(%struct.point561) align 4 %1) #0 { + %3 = bitcast %struct.point561* %0 to i8* + %4 = bitcast %struct.point561* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo562(%struct.point562* noalias sret(%struct.point562) align 4 %0, %struct.point562* noundef byval(%struct.point562) align 4 %1) #0 { + %3 = bitcast %struct.point562* %0 to i8* + %4 = bitcast %struct.point562* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo563(%struct.point563* noalias sret(%struct.point563) align 4 %0, %struct.point563* noundef byval(%struct.point563) align 4 %1) #0 { + %3 = bitcast %struct.point563* %0 to i8* + %4 = bitcast %struct.point563* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo564(%struct.point564* noalias sret(%struct.point564) align 4 %0, %struct.point564* noundef byval(%struct.point564) align 4 %1) #0 { + %3 = bitcast %struct.point564* %0 to i8* + %4 = bitcast %struct.point564* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo565(%struct.point565* noalias sret(%struct.point565) align 4 %0, %struct.point565* noundef byval(%struct.point565) align 4 %1) #0 { + %3 = bitcast %struct.point565* %0 to i8* + %4 = bitcast %struct.point565* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo566(%struct.point566* noalias sret(%struct.point566) align 4 %0, %struct.point566* noundef byval(%struct.point566) align 4 %1) #0 { + %3 = bitcast %struct.point566* %0 to i8* + %4 = bitcast %struct.point566* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo567(%struct.point567* noalias sret(%struct.point567) align 4 %0, %struct.point567* noundef byval(%struct.point567) align 4 %1) #0 { + %3 = bitcast %struct.point567* %0 to i8* + %4 = bitcast %struct.point567* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo568(%struct.point568* noalias sret(%struct.point568) align 4 %0, %struct.point568* noundef byval(%struct.point568) align 4 %1) #0 { + %3 = bitcast %struct.point568* %0 to i8* + %4 = bitcast %struct.point568* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo569(%struct.point569* noalias sret(%struct.point569) align 4 %0, %struct.point569* noundef byval(%struct.point569) align 4 %1) #0 { + %3 = bitcast %struct.point569* %0 to i8* + %4 = bitcast %struct.point569* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo570(%struct.point570* noalias sret(%struct.point570) align 4 %0, %struct.point570* noundef byval(%struct.point570) align 4 %1) #0 { + %3 = bitcast %struct.point570* %0 to i8* + %4 = bitcast %struct.point570* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo571(%struct.point571* noalias sret(%struct.point571) align 4 %0, %struct.point571* noundef byval(%struct.point571) align 4 %1) #0 { + %3 = bitcast %struct.point571* %0 to i8* + %4 = bitcast %struct.point571* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo572(%struct.point572* noalias sret(%struct.point572) align 4 %0, %struct.point572* noundef byval(%struct.point572) align 4 %1) #0 { + %3 = bitcast %struct.point572* %0 to i8* + %4 = bitcast %struct.point572* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo573(%struct.point573* noalias sret(%struct.point573) align 4 %0, %struct.point573* noundef byval(%struct.point573) align 4 %1) #0 { + %3 = bitcast %struct.point573* %0 to i8* + %4 = bitcast %struct.point573* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo574(%struct.point574* noalias sret(%struct.point574) align 4 %0, %struct.point574* noundef byval(%struct.point574) align 4 %1) #0 { + %3 = bitcast %struct.point574* %0 to i8* + %4 = bitcast %struct.point574* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo575(%struct.point575* noalias sret(%struct.point575) align 4 %0, %struct.point575* noundef byval(%struct.point575) align 4 %1) #0 { + %3 = bitcast %struct.point575* %0 to i8* + %4 = bitcast %struct.point575* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo576(%struct.point576* noalias sret(%struct.point576) align 4 %0, %struct.point576* noundef byval(%struct.point576) align 4 %1) #0 { + %3 = bitcast %struct.point576* %0 to i8* + %4 = bitcast %struct.point576* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo577(%struct.point577* noalias sret(%struct.point577) align 4 %0, %struct.point577* noundef byval(%struct.point577) align 4 %1) #0 { + %3 = bitcast %struct.point577* %0 to i8* + %4 = bitcast %struct.point577* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo578(%struct.point578* noalias sret(%struct.point578) align 4 %0, %struct.point578* noundef byval(%struct.point578) align 4 %1) #0 { + %3 = bitcast %struct.point578* %0 to i8* + %4 = bitcast %struct.point578* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo579(%struct.point579* noalias sret(%struct.point579) align 4 %0, %struct.point579* noundef byval(%struct.point579) align 4 %1) #0 { + %3 = bitcast %struct.point579* %0 to i8* + %4 = bitcast %struct.point579* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo580(%struct.point580* noalias sret(%struct.point580) align 4 %0, %struct.point580* noundef byval(%struct.point580) align 4 %1) #0 { + %3 = bitcast %struct.point580* %0 to i8* + %4 = bitcast %struct.point580* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo581(%struct.point581* noalias sret(%struct.point581) align 4 %0, %struct.point581* noundef byval(%struct.point581) align 4 %1) #0 { + %3 = bitcast %struct.point581* %0 to i8* + %4 = bitcast %struct.point581* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo582(%struct.point582* noalias sret(%struct.point582) align 4 %0, %struct.point582* noundef byval(%struct.point582) align 4 %1) #0 { + %3 = bitcast %struct.point582* %0 to i8* + %4 = bitcast %struct.point582* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo583(%struct.point583* noalias sret(%struct.point583) align 4 %0, %struct.point583* noundef byval(%struct.point583) align 4 %1) #0 { + %3 = bitcast %struct.point583* %0 to i8* + %4 = bitcast %struct.point583* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo584(%struct.point584* noalias sret(%struct.point584) align 4 %0, %struct.point584* noundef byval(%struct.point584) align 4 %1) #0 { + %3 = bitcast %struct.point584* %0 to i8* + %4 = bitcast %struct.point584* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo585(%struct.point585* noalias sret(%struct.point585) align 4 %0, %struct.point585* noundef byval(%struct.point585) align 4 %1) #0 { + %3 = bitcast %struct.point585* %0 to i8* + %4 = bitcast %struct.point585* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo586(%struct.point586* noalias sret(%struct.point586) align 4 %0, %struct.point586* noundef byval(%struct.point586) align 4 %1) #0 { + %3 = bitcast %struct.point586* %0 to i8* + %4 = bitcast %struct.point586* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo587(%struct.point587* noalias sret(%struct.point587) align 4 %0, %struct.point587* noundef byval(%struct.point587) align 4 %1) #0 { + %3 = bitcast %struct.point587* %0 to i8* + %4 = bitcast %struct.point587* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo588(%struct.point588* noalias sret(%struct.point588) align 4 %0, %struct.point588* noundef byval(%struct.point588) align 4 %1) #0 { + %3 = bitcast %struct.point588* %0 to i8* + %4 = bitcast %struct.point588* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo589(%struct.point589* noalias sret(%struct.point589) align 4 %0, %struct.point589* noundef byval(%struct.point589) align 4 %1) #0 { + %3 = bitcast %struct.point589* %0 to i8* + %4 = bitcast %struct.point589* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo590(%struct.point590* noalias sret(%struct.point590) align 4 %0, %struct.point590* noundef byval(%struct.point590) align 4 %1) #0 { + %3 = bitcast %struct.point590* %0 to i8* + %4 = bitcast %struct.point590* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo591(%struct.point591* noalias sret(%struct.point591) align 4 %0, %struct.point591* noundef byval(%struct.point591) align 4 %1) #0 { + %3 = bitcast %struct.point591* %0 to i8* + %4 = bitcast %struct.point591* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo592(%struct.point592* noalias sret(%struct.point592) align 4 %0, %struct.point592* noundef byval(%struct.point592) align 4 %1) #0 { + %3 = bitcast %struct.point592* %0 to i8* + %4 = bitcast %struct.point592* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo593(%struct.point593* noalias sret(%struct.point593) align 4 %0, %struct.point593* noundef byval(%struct.point593) align 4 %1) #0 { + %3 = bitcast %struct.point593* %0 to i8* + %4 = bitcast %struct.point593* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo594(%struct.point594* noalias sret(%struct.point594) align 4 %0, %struct.point594* noundef byval(%struct.point594) align 4 %1) #0 { + %3 = bitcast %struct.point594* %0 to i8* + %4 = bitcast %struct.point594* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo595(%struct.point595* noalias sret(%struct.point595) align 4 %0, %struct.point595* noundef byval(%struct.point595) align 4 %1) #0 { + %3 = bitcast %struct.point595* %0 to i8* + %4 = bitcast %struct.point595* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo596(%struct.point596* noalias sret(%struct.point596) align 4 %0, %struct.point596* noundef byval(%struct.point596) align 4 %1) #0 { + %3 = bitcast %struct.point596* %0 to i8* + %4 = bitcast %struct.point596* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo597(%struct.point597* noalias sret(%struct.point597) align 4 %0, %struct.point597* noundef byval(%struct.point597) align 4 %1) #0 { + %3 = bitcast %struct.point597* %0 to i8* + %4 = bitcast %struct.point597* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo598(%struct.point598* noalias sret(%struct.point598) align 4 %0, %struct.point598* noundef byval(%struct.point598) align 4 %1) #0 { + %3 = bitcast %struct.point598* %0 to i8* + %4 = bitcast %struct.point598* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo599(%struct.point599* noalias sret(%struct.point599) align 4 %0, %struct.point599* noundef byval(%struct.point599) align 4 %1) #0 { + %3 = bitcast %struct.point599* %0 to i8* + %4 = bitcast %struct.point599* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo600(%struct.point600* noalias sret(%struct.point600) align 4 %0, %struct.point600* noundef byval(%struct.point600) align 4 %1) #0 { + %3 = bitcast %struct.point600* %0 to i8* + %4 = bitcast %struct.point600* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo601(%struct.point601* noalias sret(%struct.point601) align 4 %0, %struct.point601* noundef byval(%struct.point601) align 4 %1) #0 { + %3 = bitcast %struct.point601* %0 to i8* + %4 = bitcast %struct.point601* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo602(%struct.point602* noalias sret(%struct.point602) align 4 %0, %struct.point602* noundef byval(%struct.point602) align 4 %1) #0 { + %3 = bitcast %struct.point602* %0 to i8* + %4 = bitcast %struct.point602* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo603(%struct.point603* noalias sret(%struct.point603) align 4 %0, %struct.point603* noundef byval(%struct.point603) align 4 %1) #0 { + %3 = bitcast %struct.point603* %0 to i8* + %4 = bitcast %struct.point603* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo604(%struct.point604* noalias sret(%struct.point604) align 4 %0, %struct.point604* noundef byval(%struct.point604) align 4 %1) #0 { + %3 = bitcast %struct.point604* %0 to i8* + %4 = bitcast %struct.point604* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo605(%struct.point605* noalias sret(%struct.point605) align 4 %0, %struct.point605* noundef byval(%struct.point605) align 4 %1) #0 { + %3 = bitcast %struct.point605* %0 to i8* + %4 = bitcast %struct.point605* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo606(%struct.point606* noalias sret(%struct.point606) align 4 %0, %struct.point606* noundef byval(%struct.point606) align 4 %1) #0 { + %3 = bitcast %struct.point606* %0 to i8* + %4 = bitcast %struct.point606* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo607(%struct.point607* noalias sret(%struct.point607) align 4 %0, %struct.point607* noundef byval(%struct.point607) align 4 %1) #0 { + %3 = bitcast %struct.point607* %0 to i8* + %4 = bitcast %struct.point607* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo608(%struct.point608* noalias sret(%struct.point608) align 4 %0, %struct.point608* noundef byval(%struct.point608) align 4 %1) #0 { + %3 = bitcast %struct.point608* %0 to i8* + %4 = bitcast %struct.point608* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo609(%struct.point609* noalias sret(%struct.point609) align 4 %0, %struct.point609* noundef byval(%struct.point609) align 4 %1) #0 { + %3 = bitcast %struct.point609* %0 to i8* + %4 = bitcast %struct.point609* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo610(%struct.point610* noalias sret(%struct.point610) align 4 %0, %struct.point610* noundef byval(%struct.point610) align 4 %1) #0 { + %3 = bitcast %struct.point610* %0 to i8* + %4 = bitcast %struct.point610* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo611(%struct.point611* noalias sret(%struct.point611) align 4 %0, %struct.point611* noundef byval(%struct.point611) align 4 %1) #0 { + %3 = bitcast %struct.point611* %0 to i8* + %4 = bitcast %struct.point611* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo612(%struct.point612* noalias sret(%struct.point612) align 4 %0, %struct.point612* noundef byval(%struct.point612) align 4 %1) #0 { + %3 = bitcast %struct.point612* %0 to i8* + %4 = bitcast %struct.point612* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo613(%struct.point613* noalias sret(%struct.point613) align 4 %0, %struct.point613* noundef byval(%struct.point613) align 4 %1) #0 { + %3 = bitcast %struct.point613* %0 to i8* + %4 = bitcast %struct.point613* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo614(%struct.point614* noalias sret(%struct.point614) align 4 %0, %struct.point614* noundef byval(%struct.point614) align 4 %1) #0 { + %3 = bitcast %struct.point614* %0 to i8* + %4 = bitcast %struct.point614* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo615(%struct.point615* noalias sret(%struct.point615) align 4 %0, %struct.point615* noundef byval(%struct.point615) align 4 %1) #0 { + %3 = bitcast %struct.point615* %0 to i8* + %4 = bitcast %struct.point615* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo616(%struct.point616* noalias sret(%struct.point616) align 4 %0, %struct.point616* noundef byval(%struct.point616) align 4 %1) #0 { + %3 = bitcast %struct.point616* %0 to i8* + %4 = bitcast %struct.point616* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo617(%struct.point617* noalias sret(%struct.point617) align 4 %0, %struct.point617* noundef byval(%struct.point617) align 4 %1) #0 { + %3 = bitcast %struct.point617* %0 to i8* + %4 = bitcast %struct.point617* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo618(%struct.point618* noalias sret(%struct.point618) align 4 %0, %struct.point618* noundef byval(%struct.point618) align 4 %1) #0 { + %3 = bitcast %struct.point618* %0 to i8* + %4 = bitcast %struct.point618* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo619(%struct.point619* noalias sret(%struct.point619) align 4 %0, %struct.point619* noundef byval(%struct.point619) align 4 %1) #0 { + %3 = bitcast %struct.point619* %0 to i8* + %4 = bitcast %struct.point619* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo620(%struct.point620* noalias sret(%struct.point620) align 4 %0, %struct.point620* noundef byval(%struct.point620) align 4 %1) #0 { + %3 = bitcast %struct.point620* %0 to i8* + %4 = bitcast %struct.point620* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo621(%struct.point621* noalias sret(%struct.point621) align 4 %0, %struct.point621* noundef byval(%struct.point621) align 4 %1) #0 { + %3 = bitcast %struct.point621* %0 to i8* + %4 = bitcast %struct.point621* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo622(%struct.point622* noalias sret(%struct.point622) align 4 %0, %struct.point622* noundef byval(%struct.point622) align 4 %1) #0 { + %3 = bitcast %struct.point622* %0 to i8* + %4 = bitcast %struct.point622* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo623(%struct.point623* noalias sret(%struct.point623) align 4 %0, %struct.point623* noundef byval(%struct.point623) align 4 %1) #0 { + %3 = bitcast %struct.point623* %0 to i8* + %4 = bitcast %struct.point623* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo624(%struct.point624* noalias sret(%struct.point624) align 4 %0, %struct.point624* noundef byval(%struct.point624) align 4 %1) #0 { + %3 = bitcast %struct.point624* %0 to i8* + %4 = bitcast %struct.point624* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo625(%struct.point625* noalias sret(%struct.point625) align 4 %0, %struct.point625* noundef byval(%struct.point625) align 4 %1) #0 { + %3 = bitcast %struct.point625* %0 to i8* + %4 = bitcast %struct.point625* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo626(%struct.point626* noalias sret(%struct.point626) align 4 %0, %struct.point626* noundef byval(%struct.point626) align 4 %1) #0 { + %3 = bitcast %struct.point626* %0 to i8* + %4 = bitcast %struct.point626* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo627(%struct.point627* noalias sret(%struct.point627) align 4 %0, %struct.point627* noundef byval(%struct.point627) align 4 %1) #0 { + %3 = bitcast %struct.point627* %0 to i8* + %4 = bitcast %struct.point627* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo628(%struct.point628* noalias sret(%struct.point628) align 4 %0, %struct.point628* noundef byval(%struct.point628) align 4 %1) #0 { + %3 = bitcast %struct.point628* %0 to i8* + %4 = bitcast %struct.point628* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo629(%struct.point629* noalias sret(%struct.point629) align 4 %0, %struct.point629* noundef byval(%struct.point629) align 4 %1) #0 { + %3 = bitcast %struct.point629* %0 to i8* + %4 = bitcast %struct.point629* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo630(%struct.point630* noalias sret(%struct.point630) align 4 %0, %struct.point630* noundef byval(%struct.point630) align 4 %1) #0 { + %3 = bitcast %struct.point630* %0 to i8* + %4 = bitcast %struct.point630* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo631(%struct.point631* noalias sret(%struct.point631) align 4 %0, %struct.point631* noundef byval(%struct.point631) align 4 %1) #0 { + %3 = bitcast %struct.point631* %0 to i8* + %4 = bitcast %struct.point631* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo632(%struct.point632* noalias sret(%struct.point632) align 4 %0, %struct.point632* noundef byval(%struct.point632) align 4 %1) #0 { + %3 = bitcast %struct.point632* %0 to i8* + %4 = bitcast %struct.point632* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo633(%struct.point633* noalias sret(%struct.point633) align 4 %0, %struct.point633* noundef byval(%struct.point633) align 4 %1) #0 { + %3 = bitcast %struct.point633* %0 to i8* + %4 = bitcast %struct.point633* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo634(%struct.point634* noalias sret(%struct.point634) align 4 %0, %struct.point634* noundef byval(%struct.point634) align 4 %1) #0 { + %3 = bitcast %struct.point634* %0 to i8* + %4 = bitcast %struct.point634* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo635(%struct.point635* noalias sret(%struct.point635) align 4 %0, %struct.point635* noundef byval(%struct.point635) align 4 %1) #0 { + %3 = bitcast %struct.point635* %0 to i8* + %4 = bitcast %struct.point635* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo636(%struct.point636* noalias sret(%struct.point636) align 4 %0, %struct.point636* noundef byval(%struct.point636) align 4 %1) #0 { + %3 = bitcast %struct.point636* %0 to i8* + %4 = bitcast %struct.point636* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo637(%struct.point637* noalias sret(%struct.point637) align 4 %0, %struct.point637* noundef byval(%struct.point637) align 4 %1) #0 { + %3 = bitcast %struct.point637* %0 to i8* + %4 = bitcast %struct.point637* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo638(%struct.point638* noalias sret(%struct.point638) align 4 %0, %struct.point638* noundef byval(%struct.point638) align 4 %1) #0 { + %3 = bitcast %struct.point638* %0 to i8* + %4 = bitcast %struct.point638* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo639(%struct.point639* noalias sret(%struct.point639) align 4 %0, %struct.point639* noundef byval(%struct.point639) align 4 %1) #0 { + %3 = bitcast %struct.point639* %0 to i8* + %4 = bitcast %struct.point639* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo640(%struct.point640* noalias sret(%struct.point640) align 4 %0, %struct.point640* noundef byval(%struct.point640) align 4 %1) #0 { + %3 = bitcast %struct.point640* %0 to i8* + %4 = bitcast %struct.point640* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo641(%struct.point641* noalias sret(%struct.point641) align 4 %0, %struct.point641* noundef byval(%struct.point641) align 4 %1) #0 { + %3 = bitcast %struct.point641* %0 to i8* + %4 = bitcast %struct.point641* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo642(%struct.point642* noalias sret(%struct.point642) align 4 %0, %struct.point642* noundef byval(%struct.point642) align 4 %1) #0 { + %3 = bitcast %struct.point642* %0 to i8* + %4 = bitcast %struct.point642* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo643(%struct.point643* noalias sret(%struct.point643) align 4 %0, %struct.point643* noundef byval(%struct.point643) align 4 %1) #0 { + %3 = bitcast %struct.point643* %0 to i8* + %4 = bitcast %struct.point643* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo644(%struct.point644* noalias sret(%struct.point644) align 4 %0, %struct.point644* noundef byval(%struct.point644) align 4 %1) #0 { + %3 = bitcast %struct.point644* %0 to i8* + %4 = bitcast %struct.point644* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo645(%struct.point645* noalias sret(%struct.point645) align 4 %0, %struct.point645* noundef byval(%struct.point645) align 4 %1) #0 { + %3 = bitcast %struct.point645* %0 to i8* + %4 = bitcast %struct.point645* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo646(%struct.point646* noalias sret(%struct.point646) align 4 %0, %struct.point646* noundef byval(%struct.point646) align 4 %1) #0 { + %3 = bitcast %struct.point646* %0 to i8* + %4 = bitcast %struct.point646* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo647(%struct.point647* noalias sret(%struct.point647) align 4 %0, %struct.point647* noundef byval(%struct.point647) align 4 %1) #0 { + %3 = bitcast %struct.point647* %0 to i8* + %4 = bitcast %struct.point647* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo648(%struct.point648* noalias sret(%struct.point648) align 4 %0, %struct.point648* noundef byval(%struct.point648) align 4 %1) #0 { + %3 = bitcast %struct.point648* %0 to i8* + %4 = bitcast %struct.point648* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo649(%struct.point649* noalias sret(%struct.point649) align 4 %0, %struct.point649* noundef byval(%struct.point649) align 4 %1) #0 { + %3 = bitcast %struct.point649* %0 to i8* + %4 = bitcast %struct.point649* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo650(%struct.point650* noalias sret(%struct.point650) align 4 %0, %struct.point650* noundef byval(%struct.point650) align 4 %1) #0 { + %3 = bitcast %struct.point650* %0 to i8* + %4 = bitcast %struct.point650* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo651(%struct.point651* noalias sret(%struct.point651) align 4 %0, %struct.point651* noundef byval(%struct.point651) align 4 %1) #0 { + %3 = bitcast %struct.point651* %0 to i8* + %4 = bitcast %struct.point651* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo652(%struct.point652* noalias sret(%struct.point652) align 4 %0, %struct.point652* noundef byval(%struct.point652) align 4 %1) #0 { + %3 = bitcast %struct.point652* %0 to i8* + %4 = bitcast %struct.point652* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo653(%struct.point653* noalias sret(%struct.point653) align 4 %0, %struct.point653* noundef byval(%struct.point653) align 4 %1) #0 { + %3 = bitcast %struct.point653* %0 to i8* + %4 = bitcast %struct.point653* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo654(%struct.point654* noalias sret(%struct.point654) align 4 %0, %struct.point654* noundef byval(%struct.point654) align 4 %1) #0 { + %3 = bitcast %struct.point654* %0 to i8* + %4 = bitcast %struct.point654* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo655(%struct.point655* noalias sret(%struct.point655) align 4 %0, %struct.point655* noundef byval(%struct.point655) align 4 %1) #0 { + %3 = bitcast %struct.point655* %0 to i8* + %4 = bitcast %struct.point655* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo656(%struct.point656* noalias sret(%struct.point656) align 4 %0, %struct.point656* noundef byval(%struct.point656) align 4 %1) #0 { + %3 = bitcast %struct.point656* %0 to i8* + %4 = bitcast %struct.point656* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo657(%struct.point657* noalias sret(%struct.point657) align 4 %0, %struct.point657* noundef byval(%struct.point657) align 4 %1) #0 { + %3 = bitcast %struct.point657* %0 to i8* + %4 = bitcast %struct.point657* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo658(%struct.point658* noalias sret(%struct.point658) align 4 %0, %struct.point658* noundef byval(%struct.point658) align 4 %1) #0 { + %3 = bitcast %struct.point658* %0 to i8* + %4 = bitcast %struct.point658* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo659(%struct.point659* noalias sret(%struct.point659) align 4 %0, %struct.point659* noundef byval(%struct.point659) align 4 %1) #0 { + %3 = bitcast %struct.point659* %0 to i8* + %4 = bitcast %struct.point659* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo660(%struct.point660* noalias sret(%struct.point660) align 4 %0, %struct.point660* noundef byval(%struct.point660) align 4 %1) #0 { + %3 = bitcast %struct.point660* %0 to i8* + %4 = bitcast %struct.point660* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo661(%struct.point661* noalias sret(%struct.point661) align 4 %0, %struct.point661* noundef byval(%struct.point661) align 4 %1) #0 { + %3 = bitcast %struct.point661* %0 to i8* + %4 = bitcast %struct.point661* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo662(%struct.point662* noalias sret(%struct.point662) align 4 %0, %struct.point662* noundef byval(%struct.point662) align 4 %1) #0 { + %3 = bitcast %struct.point662* %0 to i8* + %4 = bitcast %struct.point662* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo663(%struct.point663* noalias sret(%struct.point663) align 4 %0, %struct.point663* noundef byval(%struct.point663) align 4 %1) #0 { + %3 = bitcast %struct.point663* %0 to i8* + %4 = bitcast %struct.point663* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo664(%struct.point664* noalias sret(%struct.point664) align 4 %0, %struct.point664* noundef byval(%struct.point664) align 4 %1) #0 { + %3 = bitcast %struct.point664* %0 to i8* + %4 = bitcast %struct.point664* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo665(%struct.point665* noalias sret(%struct.point665) align 4 %0, %struct.point665* noundef byval(%struct.point665) align 4 %1) #0 { + %3 = bitcast %struct.point665* %0 to i8* + %4 = bitcast %struct.point665* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo666(%struct.point666* noalias sret(%struct.point666) align 4 %0, %struct.point666* noundef byval(%struct.point666) align 4 %1) #0 { + %3 = bitcast %struct.point666* %0 to i8* + %4 = bitcast %struct.point666* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo667(%struct.point667* noalias sret(%struct.point667) align 4 %0, %struct.point667* noundef byval(%struct.point667) align 4 %1) #0 { + %3 = bitcast %struct.point667* %0 to i8* + %4 = bitcast %struct.point667* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo668(%struct.point668* noalias sret(%struct.point668) align 4 %0, %struct.point668* noundef byval(%struct.point668) align 4 %1) #0 { + %3 = bitcast %struct.point668* %0 to i8* + %4 = bitcast %struct.point668* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo669(%struct.point669* noalias sret(%struct.point669) align 4 %0, %struct.point669* noundef byval(%struct.point669) align 4 %1) #0 { + %3 = bitcast %struct.point669* %0 to i8* + %4 = bitcast %struct.point669* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo670(%struct.point670* noalias sret(%struct.point670) align 4 %0, %struct.point670* noundef byval(%struct.point670) align 4 %1) #0 { + %3 = bitcast %struct.point670* %0 to i8* + %4 = bitcast %struct.point670* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo671(%struct.point671* noalias sret(%struct.point671) align 4 %0, %struct.point671* noundef byval(%struct.point671) align 4 %1) #0 { + %3 = bitcast %struct.point671* %0 to i8* + %4 = bitcast %struct.point671* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo672(%struct.point672* noalias sret(%struct.point672) align 4 %0, %struct.point672* noundef byval(%struct.point672) align 4 %1) #0 { + %3 = bitcast %struct.point672* %0 to i8* + %4 = bitcast %struct.point672* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo673(%struct.point673* noalias sret(%struct.point673) align 4 %0, %struct.point673* noundef byval(%struct.point673) align 4 %1) #0 { + %3 = bitcast %struct.point673* %0 to i8* + %4 = bitcast %struct.point673* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo674(%struct.point674* noalias sret(%struct.point674) align 4 %0, %struct.point674* noundef byval(%struct.point674) align 4 %1) #0 { + %3 = bitcast %struct.point674* %0 to i8* + %4 = bitcast %struct.point674* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo675(%struct.point675* noalias sret(%struct.point675) align 4 %0, %struct.point675* noundef byval(%struct.point675) align 4 %1) #0 { + %3 = bitcast %struct.point675* %0 to i8* + %4 = bitcast %struct.point675* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo676(%struct.point676* noalias sret(%struct.point676) align 4 %0, %struct.point676* noundef byval(%struct.point676) align 4 %1) #0 { + %3 = bitcast %struct.point676* %0 to i8* + %4 = bitcast %struct.point676* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo677(%struct.point677* noalias sret(%struct.point677) align 4 %0, %struct.point677* noundef byval(%struct.point677) align 4 %1) #0 { + %3 = bitcast %struct.point677* %0 to i8* + %4 = bitcast %struct.point677* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo678(%struct.point678* noalias sret(%struct.point678) align 4 %0, %struct.point678* noundef byval(%struct.point678) align 4 %1) #0 { + %3 = bitcast %struct.point678* %0 to i8* + %4 = bitcast %struct.point678* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo679(%struct.point679* noalias sret(%struct.point679) align 4 %0, %struct.point679* noundef byval(%struct.point679) align 4 %1) #0 { + %3 = bitcast %struct.point679* %0 to i8* + %4 = bitcast %struct.point679* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo680(%struct.point680* noalias sret(%struct.point680) align 4 %0, %struct.point680* noundef byval(%struct.point680) align 4 %1) #0 { + %3 = bitcast %struct.point680* %0 to i8* + %4 = bitcast %struct.point680* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo681(%struct.point681* noalias sret(%struct.point681) align 4 %0, %struct.point681* noundef byval(%struct.point681) align 4 %1) #0 { + %3 = bitcast %struct.point681* %0 to i8* + %4 = bitcast %struct.point681* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo682(%struct.point682* noalias sret(%struct.point682) align 4 %0, %struct.point682* noundef byval(%struct.point682) align 4 %1) #0 { + %3 = bitcast %struct.point682* %0 to i8* + %4 = bitcast %struct.point682* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo683(%struct.point683* noalias sret(%struct.point683) align 4 %0, %struct.point683* noundef byval(%struct.point683) align 4 %1) #0 { + %3 = bitcast %struct.point683* %0 to i8* + %4 = bitcast %struct.point683* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo684(%struct.point684* noalias sret(%struct.point684) align 4 %0, %struct.point684* noundef byval(%struct.point684) align 4 %1) #0 { + %3 = bitcast %struct.point684* %0 to i8* + %4 = bitcast %struct.point684* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo685(%struct.point685* noalias sret(%struct.point685) align 4 %0, %struct.point685* noundef byval(%struct.point685) align 4 %1) #0 { + %3 = bitcast %struct.point685* %0 to i8* + %4 = bitcast %struct.point685* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo686(%struct.point686* noalias sret(%struct.point686) align 4 %0, %struct.point686* noundef byval(%struct.point686) align 4 %1) #0 { + %3 = bitcast %struct.point686* %0 to i8* + %4 = bitcast %struct.point686* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo687(%struct.point687* noalias sret(%struct.point687) align 4 %0, %struct.point687* noundef byval(%struct.point687) align 4 %1) #0 { + %3 = bitcast %struct.point687* %0 to i8* + %4 = bitcast %struct.point687* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo688(%struct.point688* noalias sret(%struct.point688) align 4 %0, %struct.point688* noundef byval(%struct.point688) align 4 %1) #0 { + %3 = bitcast %struct.point688* %0 to i8* + %4 = bitcast %struct.point688* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo689(%struct.point689* noalias sret(%struct.point689) align 4 %0, %struct.point689* noundef byval(%struct.point689) align 4 %1) #0 { + %3 = bitcast %struct.point689* %0 to i8* + %4 = bitcast %struct.point689* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo690(%struct.point690* noalias sret(%struct.point690) align 4 %0, %struct.point690* noundef byval(%struct.point690) align 4 %1) #0 { + %3 = bitcast %struct.point690* %0 to i8* + %4 = bitcast %struct.point690* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo691(%struct.point691* noalias sret(%struct.point691) align 4 %0, %struct.point691* noundef byval(%struct.point691) align 4 %1) #0 { + %3 = bitcast %struct.point691* %0 to i8* + %4 = bitcast %struct.point691* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo692(%struct.point692* noalias sret(%struct.point692) align 4 %0, %struct.point692* noundef byval(%struct.point692) align 4 %1) #0 { + %3 = bitcast %struct.point692* %0 to i8* + %4 = bitcast %struct.point692* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo693(%struct.point693* noalias sret(%struct.point693) align 4 %0, %struct.point693* noundef byval(%struct.point693) align 4 %1) #0 { + %3 = bitcast %struct.point693* %0 to i8* + %4 = bitcast %struct.point693* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo694(%struct.point694* noalias sret(%struct.point694) align 4 %0, %struct.point694* noundef byval(%struct.point694) align 4 %1) #0 { + %3 = bitcast %struct.point694* %0 to i8* + %4 = bitcast %struct.point694* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo695(%struct.point695* noalias sret(%struct.point695) align 4 %0, %struct.point695* noundef byval(%struct.point695) align 4 %1) #0 { + %3 = bitcast %struct.point695* %0 to i8* + %4 = bitcast %struct.point695* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo696(%struct.point696* noalias sret(%struct.point696) align 4 %0, %struct.point696* noundef byval(%struct.point696) align 4 %1) #0 { + %3 = bitcast %struct.point696* %0 to i8* + %4 = bitcast %struct.point696* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo697(%struct.point697* noalias sret(%struct.point697) align 4 %0, %struct.point697* noundef byval(%struct.point697) align 4 %1) #0 { + %3 = bitcast %struct.point697* %0 to i8* + %4 = bitcast %struct.point697* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo698(%struct.point698* noalias sret(%struct.point698) align 4 %0, %struct.point698* noundef byval(%struct.point698) align 4 %1) #0 { + %3 = bitcast %struct.point698* %0 to i8* + %4 = bitcast %struct.point698* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo699(%struct.point699* noalias sret(%struct.point699) align 4 %0, %struct.point699* noundef byval(%struct.point699) align 4 %1) #0 { + %3 = bitcast %struct.point699* %0 to i8* + %4 = bitcast %struct.point699* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo700(%struct.point700* noalias sret(%struct.point700) align 4 %0, %struct.point700* noundef byval(%struct.point700) align 4 %1) #0 { + %3 = bitcast %struct.point700* %0 to i8* + %4 = bitcast %struct.point700* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo701(%struct.point701* noalias sret(%struct.point701) align 4 %0, %struct.point701* noundef byval(%struct.point701) align 4 %1) #0 { + %3 = bitcast %struct.point701* %0 to i8* + %4 = bitcast %struct.point701* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo702(%struct.point702* noalias sret(%struct.point702) align 4 %0, %struct.point702* noundef byval(%struct.point702) align 4 %1) #0 { + %3 = bitcast %struct.point702* %0 to i8* + %4 = bitcast %struct.point702* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo703(%struct.point703* noalias sret(%struct.point703) align 4 %0, %struct.point703* noundef byval(%struct.point703) align 4 %1) #0 { + %3 = bitcast %struct.point703* %0 to i8* + %4 = bitcast %struct.point703* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo704(%struct.point704* noalias sret(%struct.point704) align 4 %0, %struct.point704* noundef byval(%struct.point704) align 4 %1) #0 { + %3 = bitcast %struct.point704* %0 to i8* + %4 = bitcast %struct.point704* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo705(%struct.point705* noalias sret(%struct.point705) align 4 %0, %struct.point705* noundef byval(%struct.point705) align 4 %1) #0 { + %3 = bitcast %struct.point705* %0 to i8* + %4 = bitcast %struct.point705* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo706(%struct.point706* noalias sret(%struct.point706) align 4 %0, %struct.point706* noundef byval(%struct.point706) align 4 %1) #0 { + %3 = bitcast %struct.point706* %0 to i8* + %4 = bitcast %struct.point706* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo707(%struct.point707* noalias sret(%struct.point707) align 4 %0, %struct.point707* noundef byval(%struct.point707) align 4 %1) #0 { + %3 = bitcast %struct.point707* %0 to i8* + %4 = bitcast %struct.point707* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo708(%struct.point708* noalias sret(%struct.point708) align 4 %0, %struct.point708* noundef byval(%struct.point708) align 4 %1) #0 { + %3 = bitcast %struct.point708* %0 to i8* + %4 = bitcast %struct.point708* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo709(%struct.point709* noalias sret(%struct.point709) align 4 %0, %struct.point709* noundef byval(%struct.point709) align 4 %1) #0 { + %3 = bitcast %struct.point709* %0 to i8* + %4 = bitcast %struct.point709* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo710(%struct.point710* noalias sret(%struct.point710) align 4 %0, %struct.point710* noundef byval(%struct.point710) align 4 %1) #0 { + %3 = bitcast %struct.point710* %0 to i8* + %4 = bitcast %struct.point710* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo711(%struct.point711* noalias sret(%struct.point711) align 4 %0, %struct.point711* noundef byval(%struct.point711) align 4 %1) #0 { + %3 = bitcast %struct.point711* %0 to i8* + %4 = bitcast %struct.point711* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo712(%struct.point712* noalias sret(%struct.point712) align 4 %0, %struct.point712* noundef byval(%struct.point712) align 4 %1) #0 { + %3 = bitcast %struct.point712* %0 to i8* + %4 = bitcast %struct.point712* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo713(%struct.point713* noalias sret(%struct.point713) align 4 %0, %struct.point713* noundef byval(%struct.point713) align 4 %1) #0 { + %3 = bitcast %struct.point713* %0 to i8* + %4 = bitcast %struct.point713* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo714(%struct.point714* noalias sret(%struct.point714) align 4 %0, %struct.point714* noundef byval(%struct.point714) align 4 %1) #0 { + %3 = bitcast %struct.point714* %0 to i8* + %4 = bitcast %struct.point714* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo715(%struct.point715* noalias sret(%struct.point715) align 4 %0, %struct.point715* noundef byval(%struct.point715) align 4 %1) #0 { + %3 = bitcast %struct.point715* %0 to i8* + %4 = bitcast %struct.point715* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo716(%struct.point716* noalias sret(%struct.point716) align 4 %0, %struct.point716* noundef byval(%struct.point716) align 4 %1) #0 { + %3 = bitcast %struct.point716* %0 to i8* + %4 = bitcast %struct.point716* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo717(%struct.point717* noalias sret(%struct.point717) align 4 %0, %struct.point717* noundef byval(%struct.point717) align 4 %1) #0 { + %3 = bitcast %struct.point717* %0 to i8* + %4 = bitcast %struct.point717* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo718(%struct.point718* noalias sret(%struct.point718) align 4 %0, %struct.point718* noundef byval(%struct.point718) align 4 %1) #0 { + %3 = bitcast %struct.point718* %0 to i8* + %4 = bitcast %struct.point718* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo719(%struct.point719* noalias sret(%struct.point719) align 4 %0, %struct.point719* noundef byval(%struct.point719) align 4 %1) #0 { + %3 = bitcast %struct.point719* %0 to i8* + %4 = bitcast %struct.point719* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo720(%struct.point720* noalias sret(%struct.point720) align 4 %0, %struct.point720* noundef byval(%struct.point720) align 4 %1) #0 { + %3 = bitcast %struct.point720* %0 to i8* + %4 = bitcast %struct.point720* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo721(%struct.point721* noalias sret(%struct.point721) align 4 %0, %struct.point721* noundef byval(%struct.point721) align 4 %1) #0 { + %3 = bitcast %struct.point721* %0 to i8* + %4 = bitcast %struct.point721* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo722(%struct.point722* noalias sret(%struct.point722) align 4 %0, %struct.point722* noundef byval(%struct.point722) align 4 %1) #0 { + %3 = bitcast %struct.point722* %0 to i8* + %4 = bitcast %struct.point722* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo723(%struct.point723* noalias sret(%struct.point723) align 4 %0, %struct.point723* noundef byval(%struct.point723) align 4 %1) #0 { + %3 = bitcast %struct.point723* %0 to i8* + %4 = bitcast %struct.point723* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo724(%struct.point724* noalias sret(%struct.point724) align 4 %0, %struct.point724* noundef byval(%struct.point724) align 4 %1) #0 { + %3 = bitcast %struct.point724* %0 to i8* + %4 = bitcast %struct.point724* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo725(%struct.point725* noalias sret(%struct.point725) align 4 %0, %struct.point725* noundef byval(%struct.point725) align 4 %1) #0 { + %3 = bitcast %struct.point725* %0 to i8* + %4 = bitcast %struct.point725* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo726(%struct.point726* noalias sret(%struct.point726) align 4 %0, %struct.point726* noundef byval(%struct.point726) align 4 %1) #0 { + %3 = bitcast %struct.point726* %0 to i8* + %4 = bitcast %struct.point726* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo727(%struct.point727* noalias sret(%struct.point727) align 4 %0, %struct.point727* noundef byval(%struct.point727) align 4 %1) #0 { + %3 = bitcast %struct.point727* %0 to i8* + %4 = bitcast %struct.point727* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo728(%struct.point728* noalias sret(%struct.point728) align 4 %0, %struct.point728* noundef byval(%struct.point728) align 4 %1) #0 { + %3 = bitcast %struct.point728* %0 to i8* + %4 = bitcast %struct.point728* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo729(%struct.point729* noalias sret(%struct.point729) align 4 %0, %struct.point729* noundef byval(%struct.point729) align 4 %1) #0 { + %3 = bitcast %struct.point729* %0 to i8* + %4 = bitcast %struct.point729* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo730(%struct.point730* noalias sret(%struct.point730) align 4 %0, %struct.point730* noundef byval(%struct.point730) align 4 %1) #0 { + %3 = bitcast %struct.point730* %0 to i8* + %4 = bitcast %struct.point730* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo731(%struct.point731* noalias sret(%struct.point731) align 4 %0, %struct.point731* noundef byval(%struct.point731) align 4 %1) #0 { + %3 = bitcast %struct.point731* %0 to i8* + %4 = bitcast %struct.point731* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo732(%struct.point732* noalias sret(%struct.point732) align 4 %0, %struct.point732* noundef byval(%struct.point732) align 4 %1) #0 { + %3 = bitcast %struct.point732* %0 to i8* + %4 = bitcast %struct.point732* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo733(%struct.point733* noalias sret(%struct.point733) align 4 %0, %struct.point733* noundef byval(%struct.point733) align 4 %1) #0 { + %3 = bitcast %struct.point733* %0 to i8* + %4 = bitcast %struct.point733* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo734(%struct.point734* noalias sret(%struct.point734) align 4 %0, %struct.point734* noundef byval(%struct.point734) align 4 %1) #0 { + %3 = bitcast %struct.point734* %0 to i8* + %4 = bitcast %struct.point734* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo735(%struct.point735* noalias sret(%struct.point735) align 4 %0, %struct.point735* noundef byval(%struct.point735) align 4 %1) #0 { + %3 = bitcast %struct.point735* %0 to i8* + %4 = bitcast %struct.point735* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo736(%struct.point736* noalias sret(%struct.point736) align 4 %0, %struct.point736* noundef byval(%struct.point736) align 4 %1) #0 { + %3 = bitcast %struct.point736* %0 to i8* + %4 = bitcast %struct.point736* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo737(%struct.point737* noalias sret(%struct.point737) align 4 %0, %struct.point737* noundef byval(%struct.point737) align 4 %1) #0 { + %3 = bitcast %struct.point737* %0 to i8* + %4 = bitcast %struct.point737* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo738(%struct.point738* noalias sret(%struct.point738) align 4 %0, %struct.point738* noundef byval(%struct.point738) align 4 %1) #0 { + %3 = bitcast %struct.point738* %0 to i8* + %4 = bitcast %struct.point738* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo739(%struct.point739* noalias sret(%struct.point739) align 4 %0, %struct.point739* noundef byval(%struct.point739) align 4 %1) #0 { + %3 = bitcast %struct.point739* %0 to i8* + %4 = bitcast %struct.point739* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo740(%struct.point740* noalias sret(%struct.point740) align 4 %0, %struct.point740* noundef byval(%struct.point740) align 4 %1) #0 { + %3 = bitcast %struct.point740* %0 to i8* + %4 = bitcast %struct.point740* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo741(%struct.point741* noalias sret(%struct.point741) align 4 %0, %struct.point741* noundef byval(%struct.point741) align 4 %1) #0 { + %3 = bitcast %struct.point741* %0 to i8* + %4 = bitcast %struct.point741* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo742(%struct.point742* noalias sret(%struct.point742) align 4 %0, %struct.point742* noundef byval(%struct.point742) align 4 %1) #0 { + %3 = bitcast %struct.point742* %0 to i8* + %4 = bitcast %struct.point742* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo743(%struct.point743* noalias sret(%struct.point743) align 4 %0, %struct.point743* noundef byval(%struct.point743) align 4 %1) #0 { + %3 = bitcast %struct.point743* %0 to i8* + %4 = bitcast %struct.point743* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo744(%struct.point744* noalias sret(%struct.point744) align 4 %0, %struct.point744* noundef byval(%struct.point744) align 4 %1) #0 { + %3 = bitcast %struct.point744* %0 to i8* + %4 = bitcast %struct.point744* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo745(%struct.point745* noalias sret(%struct.point745) align 4 %0, %struct.point745* noundef byval(%struct.point745) align 4 %1) #0 { + %3 = bitcast %struct.point745* %0 to i8* + %4 = bitcast %struct.point745* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo746(%struct.point746* noalias sret(%struct.point746) align 4 %0, %struct.point746* noundef byval(%struct.point746) align 4 %1) #0 { + %3 = bitcast %struct.point746* %0 to i8* + %4 = bitcast %struct.point746* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo747(%struct.point747* noalias sret(%struct.point747) align 4 %0, %struct.point747* noundef byval(%struct.point747) align 4 %1) #0 { + %3 = bitcast %struct.point747* %0 to i8* + %4 = bitcast %struct.point747* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo748(%struct.point748* noalias sret(%struct.point748) align 4 %0, %struct.point748* noundef byval(%struct.point748) align 4 %1) #0 { + %3 = bitcast %struct.point748* %0 to i8* + %4 = bitcast %struct.point748* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo749(%struct.point749* noalias sret(%struct.point749) align 4 %0, %struct.point749* noundef byval(%struct.point749) align 4 %1) #0 { + %3 = bitcast %struct.point749* %0 to i8* + %4 = bitcast %struct.point749* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo750(%struct.point750* noalias sret(%struct.point750) align 4 %0, %struct.point750* noundef byval(%struct.point750) align 4 %1) #0 { + %3 = bitcast %struct.point750* %0 to i8* + %4 = bitcast %struct.point750* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo751(%struct.point751* noalias sret(%struct.point751) align 4 %0, %struct.point751* noundef byval(%struct.point751) align 4 %1) #0 { + %3 = bitcast %struct.point751* %0 to i8* + %4 = bitcast %struct.point751* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo752(%struct.point752* noalias sret(%struct.point752) align 4 %0, %struct.point752* noundef byval(%struct.point752) align 4 %1) #0 { + %3 = bitcast %struct.point752* %0 to i8* + %4 = bitcast %struct.point752* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo753(%struct.point753* noalias sret(%struct.point753) align 4 %0, %struct.point753* noundef byval(%struct.point753) align 4 %1) #0 { + %3 = bitcast %struct.point753* %0 to i8* + %4 = bitcast %struct.point753* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo754(%struct.point754* noalias sret(%struct.point754) align 4 %0, %struct.point754* noundef byval(%struct.point754) align 4 %1) #0 { + %3 = bitcast %struct.point754* %0 to i8* + %4 = bitcast %struct.point754* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo755(%struct.point755* noalias sret(%struct.point755) align 4 %0, %struct.point755* noundef byval(%struct.point755) align 4 %1) #0 { + %3 = bitcast %struct.point755* %0 to i8* + %4 = bitcast %struct.point755* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo756(%struct.point756* noalias sret(%struct.point756) align 4 %0, %struct.point756* noundef byval(%struct.point756) align 4 %1) #0 { + %3 = bitcast %struct.point756* %0 to i8* + %4 = bitcast %struct.point756* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo757(%struct.point757* noalias sret(%struct.point757) align 4 %0, %struct.point757* noundef byval(%struct.point757) align 4 %1) #0 { + %3 = bitcast %struct.point757* %0 to i8* + %4 = bitcast %struct.point757* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo758(%struct.point758* noalias sret(%struct.point758) align 4 %0, %struct.point758* noundef byval(%struct.point758) align 4 %1) #0 { + %3 = bitcast %struct.point758* %0 to i8* + %4 = bitcast %struct.point758* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo759(%struct.point759* noalias sret(%struct.point759) align 4 %0, %struct.point759* noundef byval(%struct.point759) align 4 %1) #0 { + %3 = bitcast %struct.point759* %0 to i8* + %4 = bitcast %struct.point759* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo760(%struct.point760* noalias sret(%struct.point760) align 4 %0, %struct.point760* noundef byval(%struct.point760) align 4 %1) #0 { + %3 = bitcast %struct.point760* %0 to i8* + %4 = bitcast %struct.point760* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo761(%struct.point761* noalias sret(%struct.point761) align 4 %0, %struct.point761* noundef byval(%struct.point761) align 4 %1) #0 { + %3 = bitcast %struct.point761* %0 to i8* + %4 = bitcast %struct.point761* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo762(%struct.point762* noalias sret(%struct.point762) align 4 %0, %struct.point762* noundef byval(%struct.point762) align 4 %1) #0 { + %3 = bitcast %struct.point762* %0 to i8* + %4 = bitcast %struct.point762* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo763(%struct.point763* noalias sret(%struct.point763) align 4 %0, %struct.point763* noundef byval(%struct.point763) align 4 %1) #0 { + %3 = bitcast %struct.point763* %0 to i8* + %4 = bitcast %struct.point763* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo764(%struct.point764* noalias sret(%struct.point764) align 4 %0, %struct.point764* noundef byval(%struct.point764) align 4 %1) #0 { + %3 = bitcast %struct.point764* %0 to i8* + %4 = bitcast %struct.point764* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo765(%struct.point765* noalias sret(%struct.point765) align 4 %0, %struct.point765* noundef byval(%struct.point765) align 4 %1) #0 { + %3 = bitcast %struct.point765* %0 to i8* + %4 = bitcast %struct.point765* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo766(%struct.point766* noalias sret(%struct.point766) align 4 %0, %struct.point766* noundef byval(%struct.point766) align 4 %1) #0 { + %3 = bitcast %struct.point766* %0 to i8* + %4 = bitcast %struct.point766* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo767(%struct.point767* noalias sret(%struct.point767) align 4 %0, %struct.point767* noundef byval(%struct.point767) align 4 %1) #0 { + %3 = bitcast %struct.point767* %0 to i8* + %4 = bitcast %struct.point767* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo768(%struct.point768* noalias sret(%struct.point768) align 4 %0, %struct.point768* noundef byval(%struct.point768) align 4 %1) #0 { + %3 = bitcast %struct.point768* %0 to i8* + %4 = bitcast %struct.point768* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo769(%struct.point769* noalias sret(%struct.point769) align 4 %0, %struct.point769* noundef byval(%struct.point769) align 4 %1) #0 { + %3 = bitcast %struct.point769* %0 to i8* + %4 = bitcast %struct.point769* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo770(%struct.point770* noalias sret(%struct.point770) align 4 %0, %struct.point770* noundef byval(%struct.point770) align 4 %1) #0 { + %3 = bitcast %struct.point770* %0 to i8* + %4 = bitcast %struct.point770* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo771(%struct.point771* noalias sret(%struct.point771) align 4 %0, %struct.point771* noundef byval(%struct.point771) align 4 %1) #0 { + %3 = bitcast %struct.point771* %0 to i8* + %4 = bitcast %struct.point771* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo772(%struct.point772* noalias sret(%struct.point772) align 4 %0, %struct.point772* noundef byval(%struct.point772) align 4 %1) #0 { + %3 = bitcast %struct.point772* %0 to i8* + %4 = bitcast %struct.point772* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo773(%struct.point773* noalias sret(%struct.point773) align 4 %0, %struct.point773* noundef byval(%struct.point773) align 4 %1) #0 { + %3 = bitcast %struct.point773* %0 to i8* + %4 = bitcast %struct.point773* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo774(%struct.point774* noalias sret(%struct.point774) align 4 %0, %struct.point774* noundef byval(%struct.point774) align 4 %1) #0 { + %3 = bitcast %struct.point774* %0 to i8* + %4 = bitcast %struct.point774* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo775(%struct.point775* noalias sret(%struct.point775) align 4 %0, %struct.point775* noundef byval(%struct.point775) align 4 %1) #0 { + %3 = bitcast %struct.point775* %0 to i8* + %4 = bitcast %struct.point775* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo776(%struct.point776* noalias sret(%struct.point776) align 4 %0, %struct.point776* noundef byval(%struct.point776) align 4 %1) #0 { + %3 = bitcast %struct.point776* %0 to i8* + %4 = bitcast %struct.point776* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo777(%struct.point777* noalias sret(%struct.point777) align 4 %0, %struct.point777* noundef byval(%struct.point777) align 4 %1) #0 { + %3 = bitcast %struct.point777* %0 to i8* + %4 = bitcast %struct.point777* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo778(%struct.point778* noalias sret(%struct.point778) align 4 %0, %struct.point778* noundef byval(%struct.point778) align 4 %1) #0 { + %3 = bitcast %struct.point778* %0 to i8* + %4 = bitcast %struct.point778* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo779(%struct.point779* noalias sret(%struct.point779) align 4 %0, %struct.point779* noundef byval(%struct.point779) align 4 %1) #0 { + %3 = bitcast %struct.point779* %0 to i8* + %4 = bitcast %struct.point779* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo780(%struct.point780* noalias sret(%struct.point780) align 4 %0, %struct.point780* noundef byval(%struct.point780) align 4 %1) #0 { + %3 = bitcast %struct.point780* %0 to i8* + %4 = bitcast %struct.point780* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo781(%struct.point781* noalias sret(%struct.point781) align 4 %0, %struct.point781* noundef byval(%struct.point781) align 4 %1) #0 { + %3 = bitcast %struct.point781* %0 to i8* + %4 = bitcast %struct.point781* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo782(%struct.point782* noalias sret(%struct.point782) align 4 %0, %struct.point782* noundef byval(%struct.point782) align 4 %1) #0 { + %3 = bitcast %struct.point782* %0 to i8* + %4 = bitcast %struct.point782* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo783(%struct.point783* noalias sret(%struct.point783) align 4 %0, %struct.point783* noundef byval(%struct.point783) align 4 %1) #0 { + %3 = bitcast %struct.point783* %0 to i8* + %4 = bitcast %struct.point783* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo784(%struct.point784* noalias sret(%struct.point784) align 4 %0, %struct.point784* noundef byval(%struct.point784) align 4 %1) #0 { + %3 = bitcast %struct.point784* %0 to i8* + %4 = bitcast %struct.point784* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo785(%struct.point785* noalias sret(%struct.point785) align 4 %0, %struct.point785* noundef byval(%struct.point785) align 4 %1) #0 { + %3 = bitcast %struct.point785* %0 to i8* + %4 = bitcast %struct.point785* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo786(%struct.point786* noalias sret(%struct.point786) align 4 %0, %struct.point786* noundef byval(%struct.point786) align 4 %1) #0 { + %3 = bitcast %struct.point786* %0 to i8* + %4 = bitcast %struct.point786* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo787(%struct.point787* noalias sret(%struct.point787) align 4 %0, %struct.point787* noundef byval(%struct.point787) align 4 %1) #0 { + %3 = bitcast %struct.point787* %0 to i8* + %4 = bitcast %struct.point787* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo788(%struct.point788* noalias sret(%struct.point788) align 4 %0, %struct.point788* noundef byval(%struct.point788) align 4 %1) #0 { + %3 = bitcast %struct.point788* %0 to i8* + %4 = bitcast %struct.point788* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo789(%struct.point789* noalias sret(%struct.point789) align 4 %0, %struct.point789* noundef byval(%struct.point789) align 4 %1) #0 { + %3 = bitcast %struct.point789* %0 to i8* + %4 = bitcast %struct.point789* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo790(%struct.point790* noalias sret(%struct.point790) align 4 %0, %struct.point790* noundef byval(%struct.point790) align 4 %1) #0 { + %3 = bitcast %struct.point790* %0 to i8* + %4 = bitcast %struct.point790* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo791(%struct.point791* noalias sret(%struct.point791) align 4 %0, %struct.point791* noundef byval(%struct.point791) align 4 %1) #0 { + %3 = bitcast %struct.point791* %0 to i8* + %4 = bitcast %struct.point791* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo792(%struct.point792* noalias sret(%struct.point792) align 4 %0, %struct.point792* noundef byval(%struct.point792) align 4 %1) #0 { + %3 = bitcast %struct.point792* %0 to i8* + %4 = bitcast %struct.point792* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo793(%struct.point793* noalias sret(%struct.point793) align 4 %0, %struct.point793* noundef byval(%struct.point793) align 4 %1) #0 { + %3 = bitcast %struct.point793* %0 to i8* + %4 = bitcast %struct.point793* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo794(%struct.point794* noalias sret(%struct.point794) align 4 %0, %struct.point794* noundef byval(%struct.point794) align 4 %1) #0 { + %3 = bitcast %struct.point794* %0 to i8* + %4 = bitcast %struct.point794* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo795(%struct.point795* noalias sret(%struct.point795) align 4 %0, %struct.point795* noundef byval(%struct.point795) align 4 %1) #0 { + %3 = bitcast %struct.point795* %0 to i8* + %4 = bitcast %struct.point795* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo796(%struct.point796* noalias sret(%struct.point796) align 4 %0, %struct.point796* noundef byval(%struct.point796) align 4 %1) #0 { + %3 = bitcast %struct.point796* %0 to i8* + %4 = bitcast %struct.point796* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo797(%struct.point797* noalias sret(%struct.point797) align 4 %0, %struct.point797* noundef byval(%struct.point797) align 4 %1) #0 { + %3 = bitcast %struct.point797* %0 to i8* + %4 = bitcast %struct.point797* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo798(%struct.point798* noalias sret(%struct.point798) align 4 %0, %struct.point798* noundef byval(%struct.point798) align 4 %1) #0 { + %3 = bitcast %struct.point798* %0 to i8* + %4 = bitcast %struct.point798* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo799(%struct.point799* noalias sret(%struct.point799) align 4 %0, %struct.point799* noundef byval(%struct.point799) align 4 %1) #0 { + %3 = bitcast %struct.point799* %0 to i8* + %4 = bitcast %struct.point799* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo800(%struct.point800* noalias sret(%struct.point800) align 4 %0, %struct.point800* noundef byval(%struct.point800) align 4 %1) #0 { + %3 = bitcast %struct.point800* %0 to i8* + %4 = bitcast %struct.point800* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo801(%struct.point801* noalias sret(%struct.point801) align 4 %0, %struct.point801* noundef byval(%struct.point801) align 4 %1) #0 { + %3 = bitcast %struct.point801* %0 to i8* + %4 = bitcast %struct.point801* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo802(%struct.point802* noalias sret(%struct.point802) align 4 %0, %struct.point802* noundef byval(%struct.point802) align 4 %1) #0 { + %3 = bitcast %struct.point802* %0 to i8* + %4 = bitcast %struct.point802* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo803(%struct.point803* noalias sret(%struct.point803) align 4 %0, %struct.point803* noundef byval(%struct.point803) align 4 %1) #0 { + %3 = bitcast %struct.point803* %0 to i8* + %4 = bitcast %struct.point803* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo804(%struct.point804* noalias sret(%struct.point804) align 4 %0, %struct.point804* noundef byval(%struct.point804) align 4 %1) #0 { + %3 = bitcast %struct.point804* %0 to i8* + %4 = bitcast %struct.point804* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo805(%struct.point805* noalias sret(%struct.point805) align 4 %0, %struct.point805* noundef byval(%struct.point805) align 4 %1) #0 { + %3 = bitcast %struct.point805* %0 to i8* + %4 = bitcast %struct.point805* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo806(%struct.point806* noalias sret(%struct.point806) align 4 %0, %struct.point806* noundef byval(%struct.point806) align 4 %1) #0 { + %3 = bitcast %struct.point806* %0 to i8* + %4 = bitcast %struct.point806* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo807(%struct.point807* noalias sret(%struct.point807) align 4 %0, %struct.point807* noundef byval(%struct.point807) align 4 %1) #0 { + %3 = bitcast %struct.point807* %0 to i8* + %4 = bitcast %struct.point807* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo808(%struct.point808* noalias sret(%struct.point808) align 4 %0, %struct.point808* noundef byval(%struct.point808) align 4 %1) #0 { + %3 = bitcast %struct.point808* %0 to i8* + %4 = bitcast %struct.point808* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo809(%struct.point809* noalias sret(%struct.point809) align 4 %0, %struct.point809* noundef byval(%struct.point809) align 4 %1) #0 { + %3 = bitcast %struct.point809* %0 to i8* + %4 = bitcast %struct.point809* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo810(%struct.point810* noalias sret(%struct.point810) align 4 %0, %struct.point810* noundef byval(%struct.point810) align 4 %1) #0 { + %3 = bitcast %struct.point810* %0 to i8* + %4 = bitcast %struct.point810* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo811(%struct.point811* noalias sret(%struct.point811) align 4 %0, %struct.point811* noundef byval(%struct.point811) align 4 %1) #0 { + %3 = bitcast %struct.point811* %0 to i8* + %4 = bitcast %struct.point811* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo812(%struct.point812* noalias sret(%struct.point812) align 4 %0, %struct.point812* noundef byval(%struct.point812) align 4 %1) #0 { + %3 = bitcast %struct.point812* %0 to i8* + %4 = bitcast %struct.point812* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo813(%struct.point813* noalias sret(%struct.point813) align 4 %0, %struct.point813* noundef byval(%struct.point813) align 4 %1) #0 { + %3 = bitcast %struct.point813* %0 to i8* + %4 = bitcast %struct.point813* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo814(%struct.point814* noalias sret(%struct.point814) align 4 %0, %struct.point814* noundef byval(%struct.point814) align 4 %1) #0 { + %3 = bitcast %struct.point814* %0 to i8* + %4 = bitcast %struct.point814* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo815(%struct.point815* noalias sret(%struct.point815) align 4 %0, %struct.point815* noundef byval(%struct.point815) align 4 %1) #0 { + %3 = bitcast %struct.point815* %0 to i8* + %4 = bitcast %struct.point815* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo816(%struct.point816* noalias sret(%struct.point816) align 4 %0, %struct.point816* noundef byval(%struct.point816) align 4 %1) #0 { + %3 = bitcast %struct.point816* %0 to i8* + %4 = bitcast %struct.point816* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo817(%struct.point817* noalias sret(%struct.point817) align 4 %0, %struct.point817* noundef byval(%struct.point817) align 4 %1) #0 { + %3 = bitcast %struct.point817* %0 to i8* + %4 = bitcast %struct.point817* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo818(%struct.point818* noalias sret(%struct.point818) align 4 %0, %struct.point818* noundef byval(%struct.point818) align 4 %1) #0 { + %3 = bitcast %struct.point818* %0 to i8* + %4 = bitcast %struct.point818* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo819(%struct.point819* noalias sret(%struct.point819) align 4 %0, %struct.point819* noundef byval(%struct.point819) align 4 %1) #0 { + %3 = bitcast %struct.point819* %0 to i8* + %4 = bitcast %struct.point819* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo820(%struct.point820* noalias sret(%struct.point820) align 4 %0, %struct.point820* noundef byval(%struct.point820) align 4 %1) #0 { + %3 = bitcast %struct.point820* %0 to i8* + %4 = bitcast %struct.point820* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo821(%struct.point821* noalias sret(%struct.point821) align 4 %0, %struct.point821* noundef byval(%struct.point821) align 4 %1) #0 { + %3 = bitcast %struct.point821* %0 to i8* + %4 = bitcast %struct.point821* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo822(%struct.point822* noalias sret(%struct.point822) align 4 %0, %struct.point822* noundef byval(%struct.point822) align 4 %1) #0 { + %3 = bitcast %struct.point822* %0 to i8* + %4 = bitcast %struct.point822* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo823(%struct.point823* noalias sret(%struct.point823) align 4 %0, %struct.point823* noundef byval(%struct.point823) align 4 %1) #0 { + %3 = bitcast %struct.point823* %0 to i8* + %4 = bitcast %struct.point823* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo824(%struct.point824* noalias sret(%struct.point824) align 4 %0, %struct.point824* noundef byval(%struct.point824) align 4 %1) #0 { + %3 = bitcast %struct.point824* %0 to i8* + %4 = bitcast %struct.point824* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo825(%struct.point825* noalias sret(%struct.point825) align 4 %0, %struct.point825* noundef byval(%struct.point825) align 4 %1) #0 { + %3 = bitcast %struct.point825* %0 to i8* + %4 = bitcast %struct.point825* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo826(%struct.point826* noalias sret(%struct.point826) align 4 %0, %struct.point826* noundef byval(%struct.point826) align 4 %1) #0 { + %3 = bitcast %struct.point826* %0 to i8* + %4 = bitcast %struct.point826* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo827(%struct.point827* noalias sret(%struct.point827) align 4 %0, %struct.point827* noundef byval(%struct.point827) align 4 %1) #0 { + %3 = bitcast %struct.point827* %0 to i8* + %4 = bitcast %struct.point827* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo828(%struct.point828* noalias sret(%struct.point828) align 4 %0, %struct.point828* noundef byval(%struct.point828) align 4 %1) #0 { + %3 = bitcast %struct.point828* %0 to i8* + %4 = bitcast %struct.point828* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo829(%struct.point829* noalias sret(%struct.point829) align 4 %0, %struct.point829* noundef byval(%struct.point829) align 4 %1) #0 { + %3 = bitcast %struct.point829* %0 to i8* + %4 = bitcast %struct.point829* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo830(%struct.point830* noalias sret(%struct.point830) align 4 %0, %struct.point830* noundef byval(%struct.point830) align 4 %1) #0 { + %3 = bitcast %struct.point830* %0 to i8* + %4 = bitcast %struct.point830* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo831(%struct.point831* noalias sret(%struct.point831) align 4 %0, %struct.point831* noundef byval(%struct.point831) align 4 %1) #0 { + %3 = bitcast %struct.point831* %0 to i8* + %4 = bitcast %struct.point831* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo832(%struct.point832* noalias sret(%struct.point832) align 4 %0, %struct.point832* noundef byval(%struct.point832) align 4 %1) #0 { + %3 = bitcast %struct.point832* %0 to i8* + %4 = bitcast %struct.point832* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo833(%struct.point833* noalias sret(%struct.point833) align 4 %0, %struct.point833* noundef byval(%struct.point833) align 4 %1) #0 { + %3 = bitcast %struct.point833* %0 to i8* + %4 = bitcast %struct.point833* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo834(%struct.point834* noalias sret(%struct.point834) align 4 %0, %struct.point834* noundef byval(%struct.point834) align 4 %1) #0 { + %3 = bitcast %struct.point834* %0 to i8* + %4 = bitcast %struct.point834* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo835(%struct.point835* noalias sret(%struct.point835) align 4 %0, %struct.point835* noundef byval(%struct.point835) align 4 %1) #0 { + %3 = bitcast %struct.point835* %0 to i8* + %4 = bitcast %struct.point835* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo836(%struct.point836* noalias sret(%struct.point836) align 4 %0, %struct.point836* noundef byval(%struct.point836) align 4 %1) #0 { + %3 = bitcast %struct.point836* %0 to i8* + %4 = bitcast %struct.point836* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo837(%struct.point837* noalias sret(%struct.point837) align 4 %0, %struct.point837* noundef byval(%struct.point837) align 4 %1) #0 { + %3 = bitcast %struct.point837* %0 to i8* + %4 = bitcast %struct.point837* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo838(%struct.point838* noalias sret(%struct.point838) align 4 %0, %struct.point838* noundef byval(%struct.point838) align 4 %1) #0 { + %3 = bitcast %struct.point838* %0 to i8* + %4 = bitcast %struct.point838* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo839(%struct.point839* noalias sret(%struct.point839) align 4 %0, %struct.point839* noundef byval(%struct.point839) align 4 %1) #0 { + %3 = bitcast %struct.point839* %0 to i8* + %4 = bitcast %struct.point839* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo840(%struct.point840* noalias sret(%struct.point840) align 4 %0, %struct.point840* noundef byval(%struct.point840) align 4 %1) #0 { + %3 = bitcast %struct.point840* %0 to i8* + %4 = bitcast %struct.point840* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo841(%struct.point841* noalias sret(%struct.point841) align 4 %0, %struct.point841* noundef byval(%struct.point841) align 4 %1) #0 { + %3 = bitcast %struct.point841* %0 to i8* + %4 = bitcast %struct.point841* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo842(%struct.point842* noalias sret(%struct.point842) align 4 %0, %struct.point842* noundef byval(%struct.point842) align 4 %1) #0 { + %3 = bitcast %struct.point842* %0 to i8* + %4 = bitcast %struct.point842* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo843(%struct.point843* noalias sret(%struct.point843) align 4 %0, %struct.point843* noundef byval(%struct.point843) align 4 %1) #0 { + %3 = bitcast %struct.point843* %0 to i8* + %4 = bitcast %struct.point843* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo844(%struct.point844* noalias sret(%struct.point844) align 4 %0, %struct.point844* noundef byval(%struct.point844) align 4 %1) #0 { + %3 = bitcast %struct.point844* %0 to i8* + %4 = bitcast %struct.point844* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo845(%struct.point845* noalias sret(%struct.point845) align 4 %0, %struct.point845* noundef byval(%struct.point845) align 4 %1) #0 { + %3 = bitcast %struct.point845* %0 to i8* + %4 = bitcast %struct.point845* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo846(%struct.point846* noalias sret(%struct.point846) align 4 %0, %struct.point846* noundef byval(%struct.point846) align 4 %1) #0 { + %3 = bitcast %struct.point846* %0 to i8* + %4 = bitcast %struct.point846* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo847(%struct.point847* noalias sret(%struct.point847) align 4 %0, %struct.point847* noundef byval(%struct.point847) align 4 %1) #0 { + %3 = bitcast %struct.point847* %0 to i8* + %4 = bitcast %struct.point847* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo848(%struct.point848* noalias sret(%struct.point848) align 4 %0, %struct.point848* noundef byval(%struct.point848) align 4 %1) #0 { + %3 = bitcast %struct.point848* %0 to i8* + %4 = bitcast %struct.point848* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo849(%struct.point849* noalias sret(%struct.point849) align 4 %0, %struct.point849* noundef byval(%struct.point849) align 4 %1) #0 { + %3 = bitcast %struct.point849* %0 to i8* + %4 = bitcast %struct.point849* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo850(%struct.point850* noalias sret(%struct.point850) align 4 %0, %struct.point850* noundef byval(%struct.point850) align 4 %1) #0 { + %3 = bitcast %struct.point850* %0 to i8* + %4 = bitcast %struct.point850* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo851(%struct.point851* noalias sret(%struct.point851) align 4 %0, %struct.point851* noundef byval(%struct.point851) align 4 %1) #0 { + %3 = bitcast %struct.point851* %0 to i8* + %4 = bitcast %struct.point851* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo852(%struct.point852* noalias sret(%struct.point852) align 4 %0, %struct.point852* noundef byval(%struct.point852) align 4 %1) #0 { + %3 = bitcast %struct.point852* %0 to i8* + %4 = bitcast %struct.point852* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo853(%struct.point853* noalias sret(%struct.point853) align 4 %0, %struct.point853* noundef byval(%struct.point853) align 4 %1) #0 { + %3 = bitcast %struct.point853* %0 to i8* + %4 = bitcast %struct.point853* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo854(%struct.point854* noalias sret(%struct.point854) align 4 %0, %struct.point854* noundef byval(%struct.point854) align 4 %1) #0 { + %3 = bitcast %struct.point854* %0 to i8* + %4 = bitcast %struct.point854* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo855(%struct.point855* noalias sret(%struct.point855) align 4 %0, %struct.point855* noundef byval(%struct.point855) align 4 %1) #0 { + %3 = bitcast %struct.point855* %0 to i8* + %4 = bitcast %struct.point855* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo856(%struct.point856* noalias sret(%struct.point856) align 4 %0, %struct.point856* noundef byval(%struct.point856) align 4 %1) #0 { + %3 = bitcast %struct.point856* %0 to i8* + %4 = bitcast %struct.point856* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo857(%struct.point857* noalias sret(%struct.point857) align 4 %0, %struct.point857* noundef byval(%struct.point857) align 4 %1) #0 { + %3 = bitcast %struct.point857* %0 to i8* + %4 = bitcast %struct.point857* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo858(%struct.point858* noalias sret(%struct.point858) align 4 %0, %struct.point858* noundef byval(%struct.point858) align 4 %1) #0 { + %3 = bitcast %struct.point858* %0 to i8* + %4 = bitcast %struct.point858* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo859(%struct.point859* noalias sret(%struct.point859) align 4 %0, %struct.point859* noundef byval(%struct.point859) align 4 %1) #0 { + %3 = bitcast %struct.point859* %0 to i8* + %4 = bitcast %struct.point859* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo860(%struct.point860* noalias sret(%struct.point860) align 4 %0, %struct.point860* noundef byval(%struct.point860) align 4 %1) #0 { + %3 = bitcast %struct.point860* %0 to i8* + %4 = bitcast %struct.point860* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo861(%struct.point861* noalias sret(%struct.point861) align 4 %0, %struct.point861* noundef byval(%struct.point861) align 4 %1) #0 { + %3 = bitcast %struct.point861* %0 to i8* + %4 = bitcast %struct.point861* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo862(%struct.point862* noalias sret(%struct.point862) align 4 %0, %struct.point862* noundef byval(%struct.point862) align 4 %1) #0 { + %3 = bitcast %struct.point862* %0 to i8* + %4 = bitcast %struct.point862* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo863(%struct.point863* noalias sret(%struct.point863) align 4 %0, %struct.point863* noundef byval(%struct.point863) align 4 %1) #0 { + %3 = bitcast %struct.point863* %0 to i8* + %4 = bitcast %struct.point863* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo864(%struct.point864* noalias sret(%struct.point864) align 4 %0, %struct.point864* noundef byval(%struct.point864) align 4 %1) #0 { + %3 = bitcast %struct.point864* %0 to i8* + %4 = bitcast %struct.point864* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo865(%struct.point865* noalias sret(%struct.point865) align 4 %0, %struct.point865* noundef byval(%struct.point865) align 4 %1) #0 { + %3 = bitcast %struct.point865* %0 to i8* + %4 = bitcast %struct.point865* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo866(%struct.point866* noalias sret(%struct.point866) align 4 %0, %struct.point866* noundef byval(%struct.point866) align 4 %1) #0 { + %3 = bitcast %struct.point866* %0 to i8* + %4 = bitcast %struct.point866* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo867(%struct.point867* noalias sret(%struct.point867) align 4 %0, %struct.point867* noundef byval(%struct.point867) align 4 %1) #0 { + %3 = bitcast %struct.point867* %0 to i8* + %4 = bitcast %struct.point867* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo868(%struct.point868* noalias sret(%struct.point868) align 4 %0, %struct.point868* noundef byval(%struct.point868) align 4 %1) #0 { + %3 = bitcast %struct.point868* %0 to i8* + %4 = bitcast %struct.point868* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo869(%struct.point869* noalias sret(%struct.point869) align 4 %0, %struct.point869* noundef byval(%struct.point869) align 4 %1) #0 { + %3 = bitcast %struct.point869* %0 to i8* + %4 = bitcast %struct.point869* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo870(%struct.point870* noalias sret(%struct.point870) align 4 %0, %struct.point870* noundef byval(%struct.point870) align 4 %1) #0 { + %3 = bitcast %struct.point870* %0 to i8* + %4 = bitcast %struct.point870* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo871(%struct.point871* noalias sret(%struct.point871) align 4 %0, %struct.point871* noundef byval(%struct.point871) align 4 %1) #0 { + %3 = bitcast %struct.point871* %0 to i8* + %4 = bitcast %struct.point871* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo872(%struct.point872* noalias sret(%struct.point872) align 4 %0, %struct.point872* noundef byval(%struct.point872) align 4 %1) #0 { + %3 = bitcast %struct.point872* %0 to i8* + %4 = bitcast %struct.point872* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo873(%struct.point873* noalias sret(%struct.point873) align 4 %0, %struct.point873* noundef byval(%struct.point873) align 4 %1) #0 { + %3 = bitcast %struct.point873* %0 to i8* + %4 = bitcast %struct.point873* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo874(%struct.point874* noalias sret(%struct.point874) align 4 %0, %struct.point874* noundef byval(%struct.point874) align 4 %1) #0 { + %3 = bitcast %struct.point874* %0 to i8* + %4 = bitcast %struct.point874* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo875(%struct.point875* noalias sret(%struct.point875) align 4 %0, %struct.point875* noundef byval(%struct.point875) align 4 %1) #0 { + %3 = bitcast %struct.point875* %0 to i8* + %4 = bitcast %struct.point875* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo876(%struct.point876* noalias sret(%struct.point876) align 4 %0, %struct.point876* noundef byval(%struct.point876) align 4 %1) #0 { + %3 = bitcast %struct.point876* %0 to i8* + %4 = bitcast %struct.point876* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo877(%struct.point877* noalias sret(%struct.point877) align 4 %0, %struct.point877* noundef byval(%struct.point877) align 4 %1) #0 { + %3 = bitcast %struct.point877* %0 to i8* + %4 = bitcast %struct.point877* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo878(%struct.point878* noalias sret(%struct.point878) align 4 %0, %struct.point878* noundef byval(%struct.point878) align 4 %1) #0 { + %3 = bitcast %struct.point878* %0 to i8* + %4 = bitcast %struct.point878* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo879(%struct.point879* noalias sret(%struct.point879) align 4 %0, %struct.point879* noundef byval(%struct.point879) align 4 %1) #0 { + %3 = bitcast %struct.point879* %0 to i8* + %4 = bitcast %struct.point879* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo880(%struct.point880* noalias sret(%struct.point880) align 4 %0, %struct.point880* noundef byval(%struct.point880) align 4 %1) #0 { + %3 = bitcast %struct.point880* %0 to i8* + %4 = bitcast %struct.point880* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo881(%struct.point881* noalias sret(%struct.point881) align 4 %0, %struct.point881* noundef byval(%struct.point881) align 4 %1) #0 { + %3 = bitcast %struct.point881* %0 to i8* + %4 = bitcast %struct.point881* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo882(%struct.point882* noalias sret(%struct.point882) align 4 %0, %struct.point882* noundef byval(%struct.point882) align 4 %1) #0 { + %3 = bitcast %struct.point882* %0 to i8* + %4 = bitcast %struct.point882* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo883(%struct.point883* noalias sret(%struct.point883) align 4 %0, %struct.point883* noundef byval(%struct.point883) align 4 %1) #0 { + %3 = bitcast %struct.point883* %0 to i8* + %4 = bitcast %struct.point883* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo884(%struct.point884* noalias sret(%struct.point884) align 4 %0, %struct.point884* noundef byval(%struct.point884) align 4 %1) #0 { + %3 = bitcast %struct.point884* %0 to i8* + %4 = bitcast %struct.point884* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo885(%struct.point885* noalias sret(%struct.point885) align 4 %0, %struct.point885* noundef byval(%struct.point885) align 4 %1) #0 { + %3 = bitcast %struct.point885* %0 to i8* + %4 = bitcast %struct.point885* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo886(%struct.point886* noalias sret(%struct.point886) align 4 %0, %struct.point886* noundef byval(%struct.point886) align 4 %1) #0 { + %3 = bitcast %struct.point886* %0 to i8* + %4 = bitcast %struct.point886* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo887(%struct.point887* noalias sret(%struct.point887) align 4 %0, %struct.point887* noundef byval(%struct.point887) align 4 %1) #0 { + %3 = bitcast %struct.point887* %0 to i8* + %4 = bitcast %struct.point887* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo888(%struct.point888* noalias sret(%struct.point888) align 4 %0, %struct.point888* noundef byval(%struct.point888) align 4 %1) #0 { + %3 = bitcast %struct.point888* %0 to i8* + %4 = bitcast %struct.point888* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo889(%struct.point889* noalias sret(%struct.point889) align 4 %0, %struct.point889* noundef byval(%struct.point889) align 4 %1) #0 { + %3 = bitcast %struct.point889* %0 to i8* + %4 = bitcast %struct.point889* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo890(%struct.point890* noalias sret(%struct.point890) align 4 %0, %struct.point890* noundef byval(%struct.point890) align 4 %1) #0 { + %3 = bitcast %struct.point890* %0 to i8* + %4 = bitcast %struct.point890* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo891(%struct.point891* noalias sret(%struct.point891) align 4 %0, %struct.point891* noundef byval(%struct.point891) align 4 %1) #0 { + %3 = bitcast %struct.point891* %0 to i8* + %4 = bitcast %struct.point891* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo892(%struct.point892* noalias sret(%struct.point892) align 4 %0, %struct.point892* noundef byval(%struct.point892) align 4 %1) #0 { + %3 = bitcast %struct.point892* %0 to i8* + %4 = bitcast %struct.point892* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo893(%struct.point893* noalias sret(%struct.point893) align 4 %0, %struct.point893* noundef byval(%struct.point893) align 4 %1) #0 { + %3 = bitcast %struct.point893* %0 to i8* + %4 = bitcast %struct.point893* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo894(%struct.point894* noalias sret(%struct.point894) align 4 %0, %struct.point894* noundef byval(%struct.point894) align 4 %1) #0 { + %3 = bitcast %struct.point894* %0 to i8* + %4 = bitcast %struct.point894* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo895(%struct.point895* noalias sret(%struct.point895) align 4 %0, %struct.point895* noundef byval(%struct.point895) align 4 %1) #0 { + %3 = bitcast %struct.point895* %0 to i8* + %4 = bitcast %struct.point895* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo896(%struct.point896* noalias sret(%struct.point896) align 4 %0, %struct.point896* noundef byval(%struct.point896) align 4 %1) #0 { + %3 = bitcast %struct.point896* %0 to i8* + %4 = bitcast %struct.point896* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo897(%struct.point897* noalias sret(%struct.point897) align 4 %0, %struct.point897* noundef byval(%struct.point897) align 4 %1) #0 { + %3 = bitcast %struct.point897* %0 to i8* + %4 = bitcast %struct.point897* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo898(%struct.point898* noalias sret(%struct.point898) align 4 %0, %struct.point898* noundef byval(%struct.point898) align 4 %1) #0 { + %3 = bitcast %struct.point898* %0 to i8* + %4 = bitcast %struct.point898* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo899(%struct.point899* noalias sret(%struct.point899) align 4 %0, %struct.point899* noundef byval(%struct.point899) align 4 %1) #0 { + %3 = bitcast %struct.point899* %0 to i8* + %4 = bitcast %struct.point899* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo900(%struct.point900* noalias sret(%struct.point900) align 4 %0, %struct.point900* noundef byval(%struct.point900) align 4 %1) #0 { + %3 = bitcast %struct.point900* %0 to i8* + %4 = bitcast %struct.point900* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo901(%struct.point901* noalias sret(%struct.point901) align 4 %0, %struct.point901* noundef byval(%struct.point901) align 4 %1) #0 { + %3 = bitcast %struct.point901* %0 to i8* + %4 = bitcast %struct.point901* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo902(%struct.point902* noalias sret(%struct.point902) align 4 %0, %struct.point902* noundef byval(%struct.point902) align 4 %1) #0 { + %3 = bitcast %struct.point902* %0 to i8* + %4 = bitcast %struct.point902* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo903(%struct.point903* noalias sret(%struct.point903) align 4 %0, %struct.point903* noundef byval(%struct.point903) align 4 %1) #0 { + %3 = bitcast %struct.point903* %0 to i8* + %4 = bitcast %struct.point903* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo904(%struct.point904* noalias sret(%struct.point904) align 4 %0, %struct.point904* noundef byval(%struct.point904) align 4 %1) #0 { + %3 = bitcast %struct.point904* %0 to i8* + %4 = bitcast %struct.point904* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo905(%struct.point905* noalias sret(%struct.point905) align 4 %0, %struct.point905* noundef byval(%struct.point905) align 4 %1) #0 { + %3 = bitcast %struct.point905* %0 to i8* + %4 = bitcast %struct.point905* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo906(%struct.point906* noalias sret(%struct.point906) align 4 %0, %struct.point906* noundef byval(%struct.point906) align 4 %1) #0 { + %3 = bitcast %struct.point906* %0 to i8* + %4 = bitcast %struct.point906* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo907(%struct.point907* noalias sret(%struct.point907) align 4 %0, %struct.point907* noundef byval(%struct.point907) align 4 %1) #0 { + %3 = bitcast %struct.point907* %0 to i8* + %4 = bitcast %struct.point907* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo908(%struct.point908* noalias sret(%struct.point908) align 4 %0, %struct.point908* noundef byval(%struct.point908) align 4 %1) #0 { + %3 = bitcast %struct.point908* %0 to i8* + %4 = bitcast %struct.point908* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo909(%struct.point909* noalias sret(%struct.point909) align 4 %0, %struct.point909* noundef byval(%struct.point909) align 4 %1) #0 { + %3 = bitcast %struct.point909* %0 to i8* + %4 = bitcast %struct.point909* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo910(%struct.point910* noalias sret(%struct.point910) align 4 %0, %struct.point910* noundef byval(%struct.point910) align 4 %1) #0 { + %3 = bitcast %struct.point910* %0 to i8* + %4 = bitcast %struct.point910* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo911(%struct.point911* noalias sret(%struct.point911) align 4 %0, %struct.point911* noundef byval(%struct.point911) align 4 %1) #0 { + %3 = bitcast %struct.point911* %0 to i8* + %4 = bitcast %struct.point911* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo912(%struct.point912* noalias sret(%struct.point912) align 4 %0, %struct.point912* noundef byval(%struct.point912) align 4 %1) #0 { + %3 = bitcast %struct.point912* %0 to i8* + %4 = bitcast %struct.point912* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo913(%struct.point913* noalias sret(%struct.point913) align 4 %0, %struct.point913* noundef byval(%struct.point913) align 4 %1) #0 { + %3 = bitcast %struct.point913* %0 to i8* + %4 = bitcast %struct.point913* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo914(%struct.point914* noalias sret(%struct.point914) align 4 %0, %struct.point914* noundef byval(%struct.point914) align 4 %1) #0 { + %3 = bitcast %struct.point914* %0 to i8* + %4 = bitcast %struct.point914* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo915(%struct.point915* noalias sret(%struct.point915) align 4 %0, %struct.point915* noundef byval(%struct.point915) align 4 %1) #0 { + %3 = bitcast %struct.point915* %0 to i8* + %4 = bitcast %struct.point915* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo916(%struct.point916* noalias sret(%struct.point916) align 4 %0, %struct.point916* noundef byval(%struct.point916) align 4 %1) #0 { + %3 = bitcast %struct.point916* %0 to i8* + %4 = bitcast %struct.point916* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo917(%struct.point917* noalias sret(%struct.point917) align 4 %0, %struct.point917* noundef byval(%struct.point917) align 4 %1) #0 { + %3 = bitcast %struct.point917* %0 to i8* + %4 = bitcast %struct.point917* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo918(%struct.point918* noalias sret(%struct.point918) align 4 %0, %struct.point918* noundef byval(%struct.point918) align 4 %1) #0 { + %3 = bitcast %struct.point918* %0 to i8* + %4 = bitcast %struct.point918* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo919(%struct.point919* noalias sret(%struct.point919) align 4 %0, %struct.point919* noundef byval(%struct.point919) align 4 %1) #0 { + %3 = bitcast %struct.point919* %0 to i8* + %4 = bitcast %struct.point919* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo920(%struct.point920* noalias sret(%struct.point920) align 4 %0, %struct.point920* noundef byval(%struct.point920) align 4 %1) #0 { + %3 = bitcast %struct.point920* %0 to i8* + %4 = bitcast %struct.point920* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo921(%struct.point921* noalias sret(%struct.point921) align 4 %0, %struct.point921* noundef byval(%struct.point921) align 4 %1) #0 { + %3 = bitcast %struct.point921* %0 to i8* + %4 = bitcast %struct.point921* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo922(%struct.point922* noalias sret(%struct.point922) align 4 %0, %struct.point922* noundef byval(%struct.point922) align 4 %1) #0 { + %3 = bitcast %struct.point922* %0 to i8* + %4 = bitcast %struct.point922* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo923(%struct.point923* noalias sret(%struct.point923) align 4 %0, %struct.point923* noundef byval(%struct.point923) align 4 %1) #0 { + %3 = bitcast %struct.point923* %0 to i8* + %4 = bitcast %struct.point923* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo924(%struct.point924* noalias sret(%struct.point924) align 4 %0, %struct.point924* noundef byval(%struct.point924) align 4 %1) #0 { + %3 = bitcast %struct.point924* %0 to i8* + %4 = bitcast %struct.point924* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo925(%struct.point925* noalias sret(%struct.point925) align 4 %0, %struct.point925* noundef byval(%struct.point925) align 4 %1) #0 { + %3 = bitcast %struct.point925* %0 to i8* + %4 = bitcast %struct.point925* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo926(%struct.point926* noalias sret(%struct.point926) align 4 %0, %struct.point926* noundef byval(%struct.point926) align 4 %1) #0 { + %3 = bitcast %struct.point926* %0 to i8* + %4 = bitcast %struct.point926* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo927(%struct.point927* noalias sret(%struct.point927) align 4 %0, %struct.point927* noundef byval(%struct.point927) align 4 %1) #0 { + %3 = bitcast %struct.point927* %0 to i8* + %4 = bitcast %struct.point927* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo928(%struct.point928* noalias sret(%struct.point928) align 4 %0, %struct.point928* noundef byval(%struct.point928) align 4 %1) #0 { + %3 = bitcast %struct.point928* %0 to i8* + %4 = bitcast %struct.point928* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo929(%struct.point929* noalias sret(%struct.point929) align 4 %0, %struct.point929* noundef byval(%struct.point929) align 4 %1) #0 { + %3 = bitcast %struct.point929* %0 to i8* + %4 = bitcast %struct.point929* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo930(%struct.point930* noalias sret(%struct.point930) align 4 %0, %struct.point930* noundef byval(%struct.point930) align 4 %1) #0 { + %3 = bitcast %struct.point930* %0 to i8* + %4 = bitcast %struct.point930* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo931(%struct.point931* noalias sret(%struct.point931) align 4 %0, %struct.point931* noundef byval(%struct.point931) align 4 %1) #0 { + %3 = bitcast %struct.point931* %0 to i8* + %4 = bitcast %struct.point931* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo932(%struct.point932* noalias sret(%struct.point932) align 4 %0, %struct.point932* noundef byval(%struct.point932) align 4 %1) #0 { + %3 = bitcast %struct.point932* %0 to i8* + %4 = bitcast %struct.point932* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo933(%struct.point933* noalias sret(%struct.point933) align 4 %0, %struct.point933* noundef byval(%struct.point933) align 4 %1) #0 { + %3 = bitcast %struct.point933* %0 to i8* + %4 = bitcast %struct.point933* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo934(%struct.point934* noalias sret(%struct.point934) align 4 %0, %struct.point934* noundef byval(%struct.point934) align 4 %1) #0 { + %3 = bitcast %struct.point934* %0 to i8* + %4 = bitcast %struct.point934* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo935(%struct.point935* noalias sret(%struct.point935) align 4 %0, %struct.point935* noundef byval(%struct.point935) align 4 %1) #0 { + %3 = bitcast %struct.point935* %0 to i8* + %4 = bitcast %struct.point935* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo936(%struct.point936* noalias sret(%struct.point936) align 4 %0, %struct.point936* noundef byval(%struct.point936) align 4 %1) #0 { + %3 = bitcast %struct.point936* %0 to i8* + %4 = bitcast %struct.point936* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo937(%struct.point937* noalias sret(%struct.point937) align 4 %0, %struct.point937* noundef byval(%struct.point937) align 4 %1) #0 { + %3 = bitcast %struct.point937* %0 to i8* + %4 = bitcast %struct.point937* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo938(%struct.point938* noalias sret(%struct.point938) align 4 %0, %struct.point938* noundef byval(%struct.point938) align 4 %1) #0 { + %3 = bitcast %struct.point938* %0 to i8* + %4 = bitcast %struct.point938* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo939(%struct.point939* noalias sret(%struct.point939) align 4 %0, %struct.point939* noundef byval(%struct.point939) align 4 %1) #0 { + %3 = bitcast %struct.point939* %0 to i8* + %4 = bitcast %struct.point939* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo940(%struct.point940* noalias sret(%struct.point940) align 4 %0, %struct.point940* noundef byval(%struct.point940) align 4 %1) #0 { + %3 = bitcast %struct.point940* %0 to i8* + %4 = bitcast %struct.point940* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo941(%struct.point941* noalias sret(%struct.point941) align 4 %0, %struct.point941* noundef byval(%struct.point941) align 4 %1) #0 { + %3 = bitcast %struct.point941* %0 to i8* + %4 = bitcast %struct.point941* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo942(%struct.point942* noalias sret(%struct.point942) align 4 %0, %struct.point942* noundef byval(%struct.point942) align 4 %1) #0 { + %3 = bitcast %struct.point942* %0 to i8* + %4 = bitcast %struct.point942* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo943(%struct.point943* noalias sret(%struct.point943) align 4 %0, %struct.point943* noundef byval(%struct.point943) align 4 %1) #0 { + %3 = bitcast %struct.point943* %0 to i8* + %4 = bitcast %struct.point943* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo944(%struct.point944* noalias sret(%struct.point944) align 4 %0, %struct.point944* noundef byval(%struct.point944) align 4 %1) #0 { + %3 = bitcast %struct.point944* %0 to i8* + %4 = bitcast %struct.point944* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo945(%struct.point945* noalias sret(%struct.point945) align 4 %0, %struct.point945* noundef byval(%struct.point945) align 4 %1) #0 { + %3 = bitcast %struct.point945* %0 to i8* + %4 = bitcast %struct.point945* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo946(%struct.point946* noalias sret(%struct.point946) align 4 %0, %struct.point946* noundef byval(%struct.point946) align 4 %1) #0 { + %3 = bitcast %struct.point946* %0 to i8* + %4 = bitcast %struct.point946* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo947(%struct.point947* noalias sret(%struct.point947) align 4 %0, %struct.point947* noundef byval(%struct.point947) align 4 %1) #0 { + %3 = bitcast %struct.point947* %0 to i8* + %4 = bitcast %struct.point947* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo948(%struct.point948* noalias sret(%struct.point948) align 4 %0, %struct.point948* noundef byval(%struct.point948) align 4 %1) #0 { + %3 = bitcast %struct.point948* %0 to i8* + %4 = bitcast %struct.point948* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo949(%struct.point949* noalias sret(%struct.point949) align 4 %0, %struct.point949* noundef byval(%struct.point949) align 4 %1) #0 { + %3 = bitcast %struct.point949* %0 to i8* + %4 = bitcast %struct.point949* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo950(%struct.point950* noalias sret(%struct.point950) align 4 %0, %struct.point950* noundef byval(%struct.point950) align 4 %1) #0 { + %3 = bitcast %struct.point950* %0 to i8* + %4 = bitcast %struct.point950* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo951(%struct.point951* noalias sret(%struct.point951) align 4 %0, %struct.point951* noundef byval(%struct.point951) align 4 %1) #0 { + %3 = bitcast %struct.point951* %0 to i8* + %4 = bitcast %struct.point951* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo952(%struct.point952* noalias sret(%struct.point952) align 4 %0, %struct.point952* noundef byval(%struct.point952) align 4 %1) #0 { + %3 = bitcast %struct.point952* %0 to i8* + %4 = bitcast %struct.point952* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo953(%struct.point953* noalias sret(%struct.point953) align 4 %0, %struct.point953* noundef byval(%struct.point953) align 4 %1) #0 { + %3 = bitcast %struct.point953* %0 to i8* + %4 = bitcast %struct.point953* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo954(%struct.point954* noalias sret(%struct.point954) align 4 %0, %struct.point954* noundef byval(%struct.point954) align 4 %1) #0 { + %3 = bitcast %struct.point954* %0 to i8* + %4 = bitcast %struct.point954* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo955(%struct.point955* noalias sret(%struct.point955) align 4 %0, %struct.point955* noundef byval(%struct.point955) align 4 %1) #0 { + %3 = bitcast %struct.point955* %0 to i8* + %4 = bitcast %struct.point955* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo956(%struct.point956* noalias sret(%struct.point956) align 4 %0, %struct.point956* noundef byval(%struct.point956) align 4 %1) #0 { + %3 = bitcast %struct.point956* %0 to i8* + %4 = bitcast %struct.point956* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo957(%struct.point957* noalias sret(%struct.point957) align 4 %0, %struct.point957* noundef byval(%struct.point957) align 4 %1) #0 { + %3 = bitcast %struct.point957* %0 to i8* + %4 = bitcast %struct.point957* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo958(%struct.point958* noalias sret(%struct.point958) align 4 %0, %struct.point958* noundef byval(%struct.point958) align 4 %1) #0 { + %3 = bitcast %struct.point958* %0 to i8* + %4 = bitcast %struct.point958* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo959(%struct.point959* noalias sret(%struct.point959) align 4 %0, %struct.point959* noundef byval(%struct.point959) align 4 %1) #0 { + %3 = bitcast %struct.point959* %0 to i8* + %4 = bitcast %struct.point959* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo960(%struct.point960* noalias sret(%struct.point960) align 4 %0, %struct.point960* noundef byval(%struct.point960) align 4 %1) #0 { + %3 = bitcast %struct.point960* %0 to i8* + %4 = bitcast %struct.point960* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo961(%struct.point961* noalias sret(%struct.point961) align 4 %0, %struct.point961* noundef byval(%struct.point961) align 4 %1) #0 { + %3 = bitcast %struct.point961* %0 to i8* + %4 = bitcast %struct.point961* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo962(%struct.point962* noalias sret(%struct.point962) align 4 %0, %struct.point962* noundef byval(%struct.point962) align 4 %1) #0 { + %3 = bitcast %struct.point962* %0 to i8* + %4 = bitcast %struct.point962* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo963(%struct.point963* noalias sret(%struct.point963) align 4 %0, %struct.point963* noundef byval(%struct.point963) align 4 %1) #0 { + %3 = bitcast %struct.point963* %0 to i8* + %4 = bitcast %struct.point963* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo964(%struct.point964* noalias sret(%struct.point964) align 4 %0, %struct.point964* noundef byval(%struct.point964) align 4 %1) #0 { + %3 = bitcast %struct.point964* %0 to i8* + %4 = bitcast %struct.point964* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo965(%struct.point965* noalias sret(%struct.point965) align 4 %0, %struct.point965* noundef byval(%struct.point965) align 4 %1) #0 { + %3 = bitcast %struct.point965* %0 to i8* + %4 = bitcast %struct.point965* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo966(%struct.point966* noalias sret(%struct.point966) align 4 %0, %struct.point966* noundef byval(%struct.point966) align 4 %1) #0 { + %3 = bitcast %struct.point966* %0 to i8* + %4 = bitcast %struct.point966* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo967(%struct.point967* noalias sret(%struct.point967) align 4 %0, %struct.point967* noundef byval(%struct.point967) align 4 %1) #0 { + %3 = bitcast %struct.point967* %0 to i8* + %4 = bitcast %struct.point967* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo968(%struct.point968* noalias sret(%struct.point968) align 4 %0, %struct.point968* noundef byval(%struct.point968) align 4 %1) #0 { + %3 = bitcast %struct.point968* %0 to i8* + %4 = bitcast %struct.point968* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo969(%struct.point969* noalias sret(%struct.point969) align 4 %0, %struct.point969* noundef byval(%struct.point969) align 4 %1) #0 { + %3 = bitcast %struct.point969* %0 to i8* + %4 = bitcast %struct.point969* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo970(%struct.point970* noalias sret(%struct.point970) align 4 %0, %struct.point970* noundef byval(%struct.point970) align 4 %1) #0 { + %3 = bitcast %struct.point970* %0 to i8* + %4 = bitcast %struct.point970* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo971(%struct.point971* noalias sret(%struct.point971) align 4 %0, %struct.point971* noundef byval(%struct.point971) align 4 %1) #0 { + %3 = bitcast %struct.point971* %0 to i8* + %4 = bitcast %struct.point971* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo972(%struct.point972* noalias sret(%struct.point972) align 4 %0, %struct.point972* noundef byval(%struct.point972) align 4 %1) #0 { + %3 = bitcast %struct.point972* %0 to i8* + %4 = bitcast %struct.point972* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo973(%struct.point973* noalias sret(%struct.point973) align 4 %0, %struct.point973* noundef byval(%struct.point973) align 4 %1) #0 { + %3 = bitcast %struct.point973* %0 to i8* + %4 = bitcast %struct.point973* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo974(%struct.point974* noalias sret(%struct.point974) align 4 %0, %struct.point974* noundef byval(%struct.point974) align 4 %1) #0 { + %3 = bitcast %struct.point974* %0 to i8* + %4 = bitcast %struct.point974* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo975(%struct.point975* noalias sret(%struct.point975) align 4 %0, %struct.point975* noundef byval(%struct.point975) align 4 %1) #0 { + %3 = bitcast %struct.point975* %0 to i8* + %4 = bitcast %struct.point975* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo976(%struct.point976* noalias sret(%struct.point976) align 4 %0, %struct.point976* noundef byval(%struct.point976) align 4 %1) #0 { + %3 = bitcast %struct.point976* %0 to i8* + %4 = bitcast %struct.point976* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo977(%struct.point977* noalias sret(%struct.point977) align 4 %0, %struct.point977* noundef byval(%struct.point977) align 4 %1) #0 { + %3 = bitcast %struct.point977* %0 to i8* + %4 = bitcast %struct.point977* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo978(%struct.point978* noalias sret(%struct.point978) align 4 %0, %struct.point978* noundef byval(%struct.point978) align 4 %1) #0 { + %3 = bitcast %struct.point978* %0 to i8* + %4 = bitcast %struct.point978* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo979(%struct.point979* noalias sret(%struct.point979) align 4 %0, %struct.point979* noundef byval(%struct.point979) align 4 %1) #0 { + %3 = bitcast %struct.point979* %0 to i8* + %4 = bitcast %struct.point979* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo980(%struct.point980* noalias sret(%struct.point980) align 4 %0, %struct.point980* noundef byval(%struct.point980) align 4 %1) #0 { + %3 = bitcast %struct.point980* %0 to i8* + %4 = bitcast %struct.point980* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo981(%struct.point981* noalias sret(%struct.point981) align 4 %0, %struct.point981* noundef byval(%struct.point981) align 4 %1) #0 { + %3 = bitcast %struct.point981* %0 to i8* + %4 = bitcast %struct.point981* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo982(%struct.point982* noalias sret(%struct.point982) align 4 %0, %struct.point982* noundef byval(%struct.point982) align 4 %1) #0 { + %3 = bitcast %struct.point982* %0 to i8* + %4 = bitcast %struct.point982* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo983(%struct.point983* noalias sret(%struct.point983) align 4 %0, %struct.point983* noundef byval(%struct.point983) align 4 %1) #0 { + %3 = bitcast %struct.point983* %0 to i8* + %4 = bitcast %struct.point983* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo984(%struct.point984* noalias sret(%struct.point984) align 4 %0, %struct.point984* noundef byval(%struct.point984) align 4 %1) #0 { + %3 = bitcast %struct.point984* %0 to i8* + %4 = bitcast %struct.point984* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo985(%struct.point985* noalias sret(%struct.point985) align 4 %0, %struct.point985* noundef byval(%struct.point985) align 4 %1) #0 { + %3 = bitcast %struct.point985* %0 to i8* + %4 = bitcast %struct.point985* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo986(%struct.point986* noalias sret(%struct.point986) align 4 %0, %struct.point986* noundef byval(%struct.point986) align 4 %1) #0 { + %3 = bitcast %struct.point986* %0 to i8* + %4 = bitcast %struct.point986* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo987(%struct.point987* noalias sret(%struct.point987) align 4 %0, %struct.point987* noundef byval(%struct.point987) align 4 %1) #0 { + %3 = bitcast %struct.point987* %0 to i8* + %4 = bitcast %struct.point987* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo988(%struct.point988* noalias sret(%struct.point988) align 4 %0, %struct.point988* noundef byval(%struct.point988) align 4 %1) #0 { + %3 = bitcast %struct.point988* %0 to i8* + %4 = bitcast %struct.point988* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo989(%struct.point989* noalias sret(%struct.point989) align 4 %0, %struct.point989* noundef byval(%struct.point989) align 4 %1) #0 { + %3 = bitcast %struct.point989* %0 to i8* + %4 = bitcast %struct.point989* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo990(%struct.point990* noalias sret(%struct.point990) align 4 %0, %struct.point990* noundef byval(%struct.point990) align 4 %1) #0 { + %3 = bitcast %struct.point990* %0 to i8* + %4 = bitcast %struct.point990* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo991(%struct.point991* noalias sret(%struct.point991) align 4 %0, %struct.point991* noundef byval(%struct.point991) align 4 %1) #0 { + %3 = bitcast %struct.point991* %0 to i8* + %4 = bitcast %struct.point991* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo992(%struct.point992* noalias sret(%struct.point992) align 4 %0, %struct.point992* noundef byval(%struct.point992) align 4 %1) #0 { + %3 = bitcast %struct.point992* %0 to i8* + %4 = bitcast %struct.point992* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo993(%struct.point993* noalias sret(%struct.point993) align 4 %0, %struct.point993* noundef byval(%struct.point993) align 4 %1) #0 { + %3 = bitcast %struct.point993* %0 to i8* + %4 = bitcast %struct.point993* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo994(%struct.point994* noalias sret(%struct.point994) align 4 %0, %struct.point994* noundef byval(%struct.point994) align 4 %1) #0 { + %3 = bitcast %struct.point994* %0 to i8* + %4 = bitcast %struct.point994* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo995(%struct.point995* noalias sret(%struct.point995) align 4 %0, %struct.point995* noundef byval(%struct.point995) align 4 %1) #0 { + %3 = bitcast %struct.point995* %0 to i8* + %4 = bitcast %struct.point995* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo996(%struct.point996* noalias sret(%struct.point996) align 4 %0, %struct.point996* noundef byval(%struct.point996) align 4 %1) #0 { + %3 = bitcast %struct.point996* %0 to i8* + %4 = bitcast %struct.point996* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo997(%struct.point997* noalias sret(%struct.point997) align 4 %0, %struct.point997* noundef byval(%struct.point997) align 4 %1) #0 { + %3 = bitcast %struct.point997* %0 to i8* + %4 = bitcast %struct.point997* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo998(%struct.point998* noalias sret(%struct.point998) align 4 %0, %struct.point998* noundef byval(%struct.point998) align 4 %1) #0 { + %3 = bitcast %struct.point998* %0 to i8* + %4 = bitcast %struct.point998* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo999(%struct.point999* noalias sret(%struct.point999) align 4 %0, %struct.point999* noundef byval(%struct.point999) align 4 %1) #0 { + %3 = bitcast %struct.point999* %0 to i8* + %4 = bitcast %struct.point999* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1000(%struct.point1000* noalias sret(%struct.point1000) align 4 %0, %struct.point1000* noundef byval(%struct.point1000) align 4 %1) #0 { + %3 = bitcast %struct.point1000* %0 to i8* + %4 = bitcast %struct.point1000* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1001(%struct.point1001* noalias sret(%struct.point1001) align 4 %0, %struct.point1001* noundef byval(%struct.point1001) align 4 %1) #0 { + %3 = bitcast %struct.point1001* %0 to i8* + %4 = bitcast %struct.point1001* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1002(%struct.point1002* noalias sret(%struct.point1002) align 4 %0, %struct.point1002* noundef byval(%struct.point1002) align 4 %1) #0 { + %3 = bitcast %struct.point1002* %0 to i8* + %4 = bitcast %struct.point1002* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1003(%struct.point1003* noalias sret(%struct.point1003) align 4 %0, %struct.point1003* noundef byval(%struct.point1003) align 4 %1) #0 { + %3 = bitcast %struct.point1003* %0 to i8* + %4 = bitcast %struct.point1003* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1004(%struct.point1004* noalias sret(%struct.point1004) align 4 %0, %struct.point1004* noundef byval(%struct.point1004) align 4 %1) #0 { + %3 = bitcast %struct.point1004* %0 to i8* + %4 = bitcast %struct.point1004* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1005(%struct.point1005* noalias sret(%struct.point1005) align 4 %0, %struct.point1005* noundef byval(%struct.point1005) align 4 %1) #0 { + %3 = bitcast %struct.point1005* %0 to i8* + %4 = bitcast %struct.point1005* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1006(%struct.point1006* noalias sret(%struct.point1006) align 4 %0, %struct.point1006* noundef byval(%struct.point1006) align 4 %1) #0 { + %3 = bitcast %struct.point1006* %0 to i8* + %4 = bitcast %struct.point1006* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1007(%struct.point1007* noalias sret(%struct.point1007) align 4 %0, %struct.point1007* noundef byval(%struct.point1007) align 4 %1) #0 { + %3 = bitcast %struct.point1007* %0 to i8* + %4 = bitcast %struct.point1007* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1008(%struct.point1008* noalias sret(%struct.point1008) align 4 %0, %struct.point1008* noundef byval(%struct.point1008) align 4 %1) #0 { + %3 = bitcast %struct.point1008* %0 to i8* + %4 = bitcast %struct.point1008* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1009(%struct.point1009* noalias sret(%struct.point1009) align 4 %0, %struct.point1009* noundef byval(%struct.point1009) align 4 %1) #0 { + %3 = bitcast %struct.point1009* %0 to i8* + %4 = bitcast %struct.point1009* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1010(%struct.point1010* noalias sret(%struct.point1010) align 4 %0, %struct.point1010* noundef byval(%struct.point1010) align 4 %1) #0 { + %3 = bitcast %struct.point1010* %0 to i8* + %4 = bitcast %struct.point1010* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1011(%struct.point1011* noalias sret(%struct.point1011) align 4 %0, %struct.point1011* noundef byval(%struct.point1011) align 4 %1) #0 { + %3 = bitcast %struct.point1011* %0 to i8* + %4 = bitcast %struct.point1011* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1012(%struct.point1012* noalias sret(%struct.point1012) align 4 %0, %struct.point1012* noundef byval(%struct.point1012) align 4 %1) #0 { + %3 = bitcast %struct.point1012* %0 to i8* + %4 = bitcast %struct.point1012* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1013(%struct.point1013* noalias sret(%struct.point1013) align 4 %0, %struct.point1013* noundef byval(%struct.point1013) align 4 %1) #0 { + %3 = bitcast %struct.point1013* %0 to i8* + %4 = bitcast %struct.point1013* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1014(%struct.point1014* noalias sret(%struct.point1014) align 4 %0, %struct.point1014* noundef byval(%struct.point1014) align 4 %1) #0 { + %3 = bitcast %struct.point1014* %0 to i8* + %4 = bitcast %struct.point1014* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1015(%struct.point1015* noalias sret(%struct.point1015) align 4 %0, %struct.point1015* noundef byval(%struct.point1015) align 4 %1) #0 { + %3 = bitcast %struct.point1015* %0 to i8* + %4 = bitcast %struct.point1015* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1016(%struct.point1016* noalias sret(%struct.point1016) align 4 %0, %struct.point1016* noundef byval(%struct.point1016) align 4 %1) #0 { + %3 = bitcast %struct.point1016* %0 to i8* + %4 = bitcast %struct.point1016* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1017(%struct.point1017* noalias sret(%struct.point1017) align 4 %0, %struct.point1017* noundef byval(%struct.point1017) align 4 %1) #0 { + %3 = bitcast %struct.point1017* %0 to i8* + %4 = bitcast %struct.point1017* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1018(%struct.point1018* noalias sret(%struct.point1018) align 4 %0, %struct.point1018* noundef byval(%struct.point1018) align 4 %1) #0 { + %3 = bitcast %struct.point1018* %0 to i8* + %4 = bitcast %struct.point1018* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1019(%struct.point1019* noalias sret(%struct.point1019) align 4 %0, %struct.point1019* noundef byval(%struct.point1019) align 4 %1) #0 { + %3 = bitcast %struct.point1019* %0 to i8* + %4 = bitcast %struct.point1019* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1020(%struct.point1020* noalias sret(%struct.point1020) align 4 %0, %struct.point1020* noundef byval(%struct.point1020) align 4 %1) #0 { + %3 = bitcast %struct.point1020* %0 to i8* + %4 = bitcast %struct.point1020* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1021(%struct.point1021* noalias sret(%struct.point1021) align 4 %0, %struct.point1021* noundef byval(%struct.point1021) align 4 %1) #0 { + %3 = bitcast %struct.point1021* %0 to i8* + %4 = bitcast %struct.point1021* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1022(%struct.point1022* noalias sret(%struct.point1022) align 4 %0, %struct.point1022* noundef byval(%struct.point1022) align 4 %1) #0 { + %3 = bitcast %struct.point1022* %0 to i8* + %4 = bitcast %struct.point1022* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1023(%struct.point1023* noalias sret(%struct.point1023) align 4 %0, %struct.point1023* noundef byval(%struct.point1023) align 4 %1) #0 { + %3 = bitcast %struct.point1023* %0 to i8* + %4 = bitcast %struct.point1023* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1024(%struct.point1024* noalias sret(%struct.point1024) align 4 %0, %struct.point1024* noundef byval(%struct.point1024) align 4 %1) #0 { + %3 = bitcast %struct.point1024* %0 to i8* + %4 = bitcast %struct.point1024* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1025(%struct.point1025* noalias sret(%struct.point1025) align 4 %0, %struct.point1025* noundef byval(%struct.point1025) align 4 %1) #0 { + %3 = bitcast %struct.point1025* %0 to i8* + %4 = bitcast %struct.point1025* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1026(%struct.point1026* noalias sret(%struct.point1026) align 4 %0, %struct.point1026* noundef byval(%struct.point1026) align 4 %1) #0 { + %3 = bitcast %struct.point1026* %0 to i8* + %4 = bitcast %struct.point1026* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1027(%struct.point1027* noalias sret(%struct.point1027) align 4 %0, %struct.point1027* noundef byval(%struct.point1027) align 4 %1) #0 { + %3 = bitcast %struct.point1027* %0 to i8* + %4 = bitcast %struct.point1027* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1028(%struct.point1028* noalias sret(%struct.point1028) align 4 %0, %struct.point1028* noundef byval(%struct.point1028) align 4 %1) #0 { + %3 = bitcast %struct.point1028* %0 to i8* + %4 = bitcast %struct.point1028* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1029(%struct.point1029* noalias sret(%struct.point1029) align 4 %0, %struct.point1029* noundef byval(%struct.point1029) align 4 %1) #0 { + %3 = bitcast %struct.point1029* %0 to i8* + %4 = bitcast %struct.point1029* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1030(%struct.point1030* noalias sret(%struct.point1030) align 4 %0, %struct.point1030* noundef byval(%struct.point1030) align 4 %1) #0 { + %3 = bitcast %struct.point1030* %0 to i8* + %4 = bitcast %struct.point1030* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1031(%struct.point1031* noalias sret(%struct.point1031) align 4 %0, %struct.point1031* noundef byval(%struct.point1031) align 4 %1) #0 { + %3 = bitcast %struct.point1031* %0 to i8* + %4 = bitcast %struct.point1031* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1032(%struct.point1032* noalias sret(%struct.point1032) align 4 %0, %struct.point1032* noundef byval(%struct.point1032) align 4 %1) #0 { + %3 = bitcast %struct.point1032* %0 to i8* + %4 = bitcast %struct.point1032* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1033(%struct.point1033* noalias sret(%struct.point1033) align 4 %0, %struct.point1033* noundef byval(%struct.point1033) align 4 %1) #0 { + %3 = bitcast %struct.point1033* %0 to i8* + %4 = bitcast %struct.point1033* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1034(%struct.point1034* noalias sret(%struct.point1034) align 4 %0, %struct.point1034* noundef byval(%struct.point1034) align 4 %1) #0 { + %3 = bitcast %struct.point1034* %0 to i8* + %4 = bitcast %struct.point1034* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1035(%struct.point1035* noalias sret(%struct.point1035) align 4 %0, %struct.point1035* noundef byval(%struct.point1035) align 4 %1) #0 { + %3 = bitcast %struct.point1035* %0 to i8* + %4 = bitcast %struct.point1035* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1036(%struct.point1036* noalias sret(%struct.point1036) align 4 %0, %struct.point1036* noundef byval(%struct.point1036) align 4 %1) #0 { + %3 = bitcast %struct.point1036* %0 to i8* + %4 = bitcast %struct.point1036* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1037(%struct.point1037* noalias sret(%struct.point1037) align 4 %0, %struct.point1037* noundef byval(%struct.point1037) align 4 %1) #0 { + %3 = bitcast %struct.point1037* %0 to i8* + %4 = bitcast %struct.point1037* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1038(%struct.point1038* noalias sret(%struct.point1038) align 4 %0, %struct.point1038* noundef byval(%struct.point1038) align 4 %1) #0 { + %3 = bitcast %struct.point1038* %0 to i8* + %4 = bitcast %struct.point1038* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1039(%struct.point1039* noalias sret(%struct.point1039) align 4 %0, %struct.point1039* noundef byval(%struct.point1039) align 4 %1) #0 { + %3 = bitcast %struct.point1039* %0 to i8* + %4 = bitcast %struct.point1039* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1040(%struct.point1040* noalias sret(%struct.point1040) align 4 %0, %struct.point1040* noundef byval(%struct.point1040) align 4 %1) #0 { + %3 = bitcast %struct.point1040* %0 to i8* + %4 = bitcast %struct.point1040* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1041(%struct.point1041* noalias sret(%struct.point1041) align 4 %0, %struct.point1041* noundef byval(%struct.point1041) align 4 %1) #0 { + %3 = bitcast %struct.point1041* %0 to i8* + %4 = bitcast %struct.point1041* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1042(%struct.point1042* noalias sret(%struct.point1042) align 4 %0, %struct.point1042* noundef byval(%struct.point1042) align 4 %1) #0 { + %3 = bitcast %struct.point1042* %0 to i8* + %4 = bitcast %struct.point1042* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1043(%struct.point1043* noalias sret(%struct.point1043) align 4 %0, %struct.point1043* noundef byval(%struct.point1043) align 4 %1) #0 { + %3 = bitcast %struct.point1043* %0 to i8* + %4 = bitcast %struct.point1043* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1044(%struct.point1044* noalias sret(%struct.point1044) align 4 %0, %struct.point1044* noundef byval(%struct.point1044) align 4 %1) #0 { + %3 = bitcast %struct.point1044* %0 to i8* + %4 = bitcast %struct.point1044* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1045(%struct.point1045* noalias sret(%struct.point1045) align 4 %0, %struct.point1045* noundef byval(%struct.point1045) align 4 %1) #0 { + %3 = bitcast %struct.point1045* %0 to i8* + %4 = bitcast %struct.point1045* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1046(%struct.point1046* noalias sret(%struct.point1046) align 4 %0, %struct.point1046* noundef byval(%struct.point1046) align 4 %1) #0 { + %3 = bitcast %struct.point1046* %0 to i8* + %4 = bitcast %struct.point1046* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1047(%struct.point1047* noalias sret(%struct.point1047) align 4 %0, %struct.point1047* noundef byval(%struct.point1047) align 4 %1) #0 { + %3 = bitcast %struct.point1047* %0 to i8* + %4 = bitcast %struct.point1047* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1048(%struct.point1048* noalias sret(%struct.point1048) align 4 %0, %struct.point1048* noundef byval(%struct.point1048) align 4 %1) #0 { + %3 = bitcast %struct.point1048* %0 to i8* + %4 = bitcast %struct.point1048* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1049(%struct.point1049* noalias sret(%struct.point1049) align 4 %0, %struct.point1049* noundef byval(%struct.point1049) align 4 %1) #0 { + %3 = bitcast %struct.point1049* %0 to i8* + %4 = bitcast %struct.point1049* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo1050(%struct.point1050* noalias sret(%struct.point1050) align 4 %0, %struct.point1050* noundef byval(%struct.point1050) align 4 %1) #0 { + %3 = bitcast %struct.point1050* %0 to i8* + %4 = bitcast %struct.point1050* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/arch/wasm32/struct_uintptr.ll b/internal/cabi/_testdata/arch/wasm32/struct_uintptr.ll new file mode 100644 index 00000000..22b45609 --- /dev/null +++ b/internal/cabi/_testdata/arch/wasm32/struct_uintptr.ll @@ -0,0 +1,203 @@ +; ModuleID = '../../wrap/struct_uintptr.c' +source_filename = "../../wrap/struct_uintptr.c" +target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-S128-ni:1:10:20" +target triple = "wasm32-unknown-emscripten" + +%struct.point1 = type { i8* } +%struct.point2 = type { i8*, i8* } +%struct.point3 = type { i8*, i8*, i8* } +%struct.point4 = type { i8*, i8*, i8*, i8* } +%struct.point5 = type { i8*, i8*, i8*, i8*, i8* } +%struct.point6 = type { i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point7 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point8 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point9 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point10 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point11 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point12 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point13 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point14 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point15 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point16 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point17 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point18 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point19 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } +%struct.point20 = type { i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* } + +; Function Attrs: noinline nounwind optnone +define hidden i8* @demo1(i8* %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, %struct.point1* %3, i32 0, i32 0 + store i8* %0, i8** %4, align 4 + %5 = bitcast %struct.point1* %2 to i8* + %6 = bitcast %struct.point1* %3 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %5, i8* align 4 %6, i32 4, i1 false) + %7 = getelementptr inbounds %struct.point1, %struct.point1* %2, i32 0, i32 0 + %8 = load i8*, i8** %7, align 4 + ret i8* %8 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define hidden void @demo2(%struct.point2* noalias sret(%struct.point2) align 4 %0, %struct.point2* noundef byval(%struct.point2) align 4 %1) #0 { + %3 = bitcast %struct.point2* %0 to i8* + %4 = bitcast %struct.point2* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 8, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo3(%struct.point3* noalias sret(%struct.point3) align 4 %0, %struct.point3* noundef byval(%struct.point3) align 4 %1) #0 { + %3 = bitcast %struct.point3* %0 to i8* + %4 = bitcast %struct.point3* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo4(%struct.point4* noalias sret(%struct.point4) align 4 %0, %struct.point4* noundef byval(%struct.point4) align 4 %1) #0 { + %3 = bitcast %struct.point4* %0 to i8* + %4 = bitcast %struct.point4* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo5(%struct.point5* noalias sret(%struct.point5) align 4 %0, %struct.point5* noundef byval(%struct.point5) align 4 %1) #0 { + %3 = bitcast %struct.point5* %0 to i8* + %4 = bitcast %struct.point5* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo6(%struct.point6* noalias sret(%struct.point6) align 4 %0, %struct.point6* noundef byval(%struct.point6) align 4 %1) #0 { + %3 = bitcast %struct.point6* %0 to i8* + %4 = bitcast %struct.point6* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo7(%struct.point7* noalias sret(%struct.point7) align 4 %0, %struct.point7* noundef byval(%struct.point7) align 4 %1) #0 { + %3 = bitcast %struct.point7* %0 to i8* + %4 = bitcast %struct.point7* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo8(%struct.point8* noalias sret(%struct.point8) align 4 %0, %struct.point8* noundef byval(%struct.point8) align 4 %1) #0 { + %3 = bitcast %struct.point8* %0 to i8* + %4 = bitcast %struct.point8* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo9(%struct.point9* noalias sret(%struct.point9) align 4 %0, %struct.point9* noundef byval(%struct.point9) align 4 %1) #0 { + %3 = bitcast %struct.point9* %0 to i8* + %4 = bitcast %struct.point9* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo10(%struct.point10* noalias sret(%struct.point10) align 4 %0, %struct.point10* noundef byval(%struct.point10) align 4 %1) #0 { + %3 = bitcast %struct.point10* %0 to i8* + %4 = bitcast %struct.point10* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo11(%struct.point11* noalias sret(%struct.point11) align 4 %0, %struct.point11* noundef byval(%struct.point11) align 4 %1) #0 { + %3 = bitcast %struct.point11* %0 to i8* + %4 = bitcast %struct.point11* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo12(%struct.point12* noalias sret(%struct.point12) align 4 %0, %struct.point12* noundef byval(%struct.point12) align 4 %1) #0 { + %3 = bitcast %struct.point12* %0 to i8* + %4 = bitcast %struct.point12* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo13(%struct.point13* noalias sret(%struct.point13) align 4 %0, %struct.point13* noundef byval(%struct.point13) align 4 %1) #0 { + %3 = bitcast %struct.point13* %0 to i8* + %4 = bitcast %struct.point13* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo14(%struct.point14* noalias sret(%struct.point14) align 4 %0, %struct.point14* noundef byval(%struct.point14) align 4 %1) #0 { + %3 = bitcast %struct.point14* %0 to i8* + %4 = bitcast %struct.point14* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo15(%struct.point15* noalias sret(%struct.point15) align 4 %0, %struct.point15* noundef byval(%struct.point15) align 4 %1) #0 { + %3 = bitcast %struct.point15* %0 to i8* + %4 = bitcast %struct.point15* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo16(%struct.point16* noalias sret(%struct.point16) align 4 %0, %struct.point16* noundef byval(%struct.point16) align 4 %1) #0 { + %3 = bitcast %struct.point16* %0 to i8* + %4 = bitcast %struct.point16* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo17(%struct.point17* noalias sret(%struct.point17) align 4 %0, %struct.point17* noundef byval(%struct.point17) align 4 %1) #0 { + %3 = bitcast %struct.point17* %0 to i8* + %4 = bitcast %struct.point17* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo18(%struct.point18* noalias sret(%struct.point18) align 4 %0, %struct.point18* noundef byval(%struct.point18) align 4 %1) #0 { + %3 = bitcast %struct.point18* %0 to i8* + %4 = bitcast %struct.point18* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo19(%struct.point19* noalias sret(%struct.point19) align 4 %0, %struct.point19* noundef byval(%struct.point19) align 4 %1) #0 { + %3 = bitcast %struct.point19* %0 to i8* + %4 = bitcast %struct.point19* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define hidden void @demo20(%struct.point20* noalias sret(%struct.point20) align 4 %0, %struct.point20* noundef byval(%struct.point20) align 4 %1) #0 { + %3 = bitcast %struct.point20* %0 to i8* + %4 = bitcast %struct.point20* %1 to i8* + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } + +!llvm.module.flags = !{!0} +!llvm.ident = !{!1} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{!"Apple clang version 14.0.3 (clang-1403.0.22.14.1)"} diff --git a/internal/cabi/_testdata/demo/array_float32.go b/internal/cabi/_testdata/demo/array_float32.go new file mode 100644 index 00000000..4d972ac6 --- /dev/null +++ b/internal/cabi/_testdata/demo/array_float32.go @@ -0,0 +1,359 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_float32.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]float32 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]float32{1}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]float32 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]float32{1, 2}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]float32 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]float32{1, 2, 3}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]float32 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]float32{1, 2, 3, 4}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]float32 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]float32{1, 2, 3, 4, 5}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]float32 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]float32{1, 2, 3, 4, 5, 6}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]float32 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]float32{1, 2, 3, 4, 5, 6, 7}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]float32 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]float32{1, 2, 3, 4, 5, 6, 7, 8}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]float32 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]float32{1, 2, 3, 4, 5, 6, 7, 8, 9}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]float32 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]float32 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]float32 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]float32 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]float32 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]float32 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]float32 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]float32 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]float32 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]float32 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]float32 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]float32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/array_float64.go b/internal/cabi/_testdata/demo/array_float64.go new file mode 100644 index 00000000..36244ff1 --- /dev/null +++ b/internal/cabi/_testdata/demo/array_float64.go @@ -0,0 +1,359 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_float64.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]float64 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]float64{1}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]float64 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]float64{1, 2}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]float64 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]float64{1, 2, 3}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]float64 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]float64{1, 2, 3, 4}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]float64 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]float64{1, 2, 3, 4, 5}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]float64 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]float64{1, 2, 3, 4, 5, 6}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]float64 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]float64{1, 2, 3, 4, 5, 6, 7}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]float64 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]float64{1, 2, 3, 4, 5, 6, 7, 8}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]float64 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]float64{1, 2, 3, 4, 5, 6, 7, 8, 9}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]float64 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]float64 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]float64 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]float64 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]float64 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]float64 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]float64 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]float64 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]float64 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]float64 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]float64 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/array_int16.go b/internal/cabi/_testdata/demo/array_int16.go new file mode 100644 index 00000000..57b724ac --- /dev/null +++ b/internal/cabi/_testdata/demo/array_int16.go @@ -0,0 +1,359 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_int16.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]int16 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]int16{1}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]int16 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]int16{1, 2}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]int16 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]int16{1, 2, 3}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]int16 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]int16{1, 2, 3, 4}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]int16 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]int16{1, 2, 3, 4, 5}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]int16 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]int16{1, 2, 3, 4, 5, 6}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]int16 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]int16{1, 2, 3, 4, 5, 6, 7}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]int16 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]int16{1, 2, 3, 4, 5, 6, 7, 8}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]int16 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]int16{1, 2, 3, 4, 5, 6, 7, 8, 9}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]int16 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]int16 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]int16 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]int16 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]int16 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]int16 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]int16 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]int16 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]int16 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]int16 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]int16 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]int16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/array_int32.go b/internal/cabi/_testdata/demo/array_int32.go new file mode 100644 index 00000000..4826ae04 --- /dev/null +++ b/internal/cabi/_testdata/demo/array_int32.go @@ -0,0 +1,359 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_int32.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]int32 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]int32{1}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]int32 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]int32{1, 2}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]int32 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]int32{1, 2, 3}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]int32 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]int32{1, 2, 3, 4}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]int32 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]int32{1, 2, 3, 4, 5}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]int32 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]int32{1, 2, 3, 4, 5, 6}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]int32 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]int32{1, 2, 3, 4, 5, 6, 7}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]int32 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]int32 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]int32{1, 2, 3, 4, 5, 6, 7, 8, 9}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]int32 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]int32 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]int32 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]int32 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]int32 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]int32 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]int32 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]int32 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]int32 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]int32 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]int32 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/array_int64.go b/internal/cabi/_testdata/demo/array_int64.go new file mode 100644 index 00000000..f6c11185 --- /dev/null +++ b/internal/cabi/_testdata/demo/array_int64.go @@ -0,0 +1,359 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_int64.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]int64 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]int64{1}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]int64 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]int64{1, 2}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]int64 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]int64{1, 2, 3}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]int64 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]int64{1, 2, 3, 4}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]int64 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]int64{1, 2, 3, 4, 5}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]int64 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]int64{1, 2, 3, 4, 5, 6}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]int64 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]int64{1, 2, 3, 4, 5, 6, 7}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]int64 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]int64{1, 2, 3, 4, 5, 6, 7, 8}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]int64 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]int64{1, 2, 3, 4, 5, 6, 7, 8, 9}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]int64 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]int64 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]int64 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]int64 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]int64 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]int64 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]int64 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]int64 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]int64 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]int64 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]int64 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/array_int8.go b/internal/cabi/_testdata/demo/array_int8.go new file mode 100644 index 00000000..2d4e8a3e --- /dev/null +++ b/internal/cabi/_testdata/demo/array_int8.go @@ -0,0 +1,359 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_int8.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]int8 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]int8{1}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]int8 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]int8{1, 2}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]int8 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]int8{1, 2, 3}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]int8 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]int8{1, 2, 3, 4}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]int8 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]int8{1, 2, 3, 4, 5}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]int8 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]int8{1, 2, 3, 4, 5, 6}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]int8 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]int8{1, 2, 3, 4, 5, 6, 7}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]int8 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]int8{1, 2, 3, 4, 5, 6, 7, 8}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]int8 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]int8{1, 2, 3, 4, 5, 6, 7, 8, 9}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]int8 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]int8 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]int8 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]int8 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]int8 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]int8 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]int8 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]int8 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]int8 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]int8 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]int8 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]int8{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/array_uintptr.go b/internal/cabi/_testdata/demo/array_uintptr.go new file mode 100644 index 00000000..ecc02853 --- /dev/null +++ b/internal/cabi/_testdata/demo/array_uintptr.go @@ -0,0 +1,359 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/array_uintptr.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type array1 struct { + x [1]uintptr +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a array1) array1 + +func demo1(a array1) array1 { + return a +} + +func init() { + a := array1{x: [1]uintptr{1}} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type array2 struct { + x [2]uintptr +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a array2) array2 + +func demo2(a array2) array2 { + return a +} + +func init() { + a := array2{x: [2]uintptr{1, 2}} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type array3 struct { + x [3]uintptr +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a array3) array3 + +func demo3(a array3) array3 { + return a +} + +func init() { + a := array3{x: [3]uintptr{1, 2, 3}} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type array4 struct { + x [4]uintptr +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a array4) array4 + +func demo4(a array4) array4 { + return a +} + +func init() { + a := array4{x: [4]uintptr{1, 2, 3, 4}} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type array5 struct { + x [5]uintptr +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a array5) array5 + +func demo5(a array5) array5 { + return a +} + +func init() { + a := array5{x: [5]uintptr{1, 2, 3, 4, 5}} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type array6 struct { + x [6]uintptr +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a array6) array6 + +func demo6(a array6) array6 { + return a +} + +func init() { + a := array6{x: [6]uintptr{1, 2, 3, 4, 5, 6}} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type array7 struct { + x [7]uintptr +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a array7) array7 + +func demo7(a array7) array7 { + return a +} + +func init() { + a := array7{x: [7]uintptr{1, 2, 3, 4, 5, 6, 7}} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type array8 struct { + x [8]uintptr +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a array8) array8 + +func demo8(a array8) array8 { + return a +} + +func init() { + a := array8{x: [8]uintptr{1, 2, 3, 4, 5, 6, 7, 8}} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type array9 struct { + x [9]uintptr +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a array9) array9 + +func demo9(a array9) array9 { + return a +} + +func init() { + a := array9{x: [9]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9}} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type array10 struct { + x [10]uintptr +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a array10) array10 + +func demo10(a array10) array10 { + return a +} + +func init() { + a := array10{x: [10]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type array11 struct { + x [11]uintptr +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a array11) array11 + +func demo11(a array11) array11 { + return a +} + +func init() { + a := array11{x: [11]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type array12 struct { + x [12]uintptr +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a array12) array12 + +func demo12(a array12) array12 { + return a +} + +func init() { + a := array12{x: [12]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type array13 struct { + x [13]uintptr +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a array13) array13 + +func demo13(a array13) array13 { + return a +} + +func init() { + a := array13{x: [13]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type array14 struct { + x [14]uintptr +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a array14) array14 + +func demo14(a array14) array14 { + return a +} + +func init() { + a := array14{x: [14]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type array15 struct { + x [15]uintptr +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a array15) array15 + +func demo15(a array15) array15 { + return a +} + +func init() { + a := array15{x: [15]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type array16 struct { + x [16]uintptr +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a array16) array16 + +func demo16(a array16) array16 { + return a +} + +func init() { + a := array16{x: [16]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type array17 struct { + x [17]uintptr +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a array17) array17 + +func demo17(a array17) array17 { + return a +} + +func init() { + a := array17{x: [17]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type array18 struct { + x [18]uintptr +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a array18) array18 + +func demo18(a array18) array18 { + return a +} + +func init() { + a := array18{x: [18]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type array19 struct { + x [19]uintptr +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a array19) array19 + +func demo19(a array19) array19 { + return a +} + +func init() { + a := array19{x: [19]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type array20 struct { + x [20]uintptr +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a array20) array20 + +func demo20(a array20) array20 { + return a +} + +func init() { + a := array20{x: [20]uintptr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/basic.go b/internal/cabi/_testdata/demo/basic.go new file mode 100644 index 00000000..d115d281 --- /dev/null +++ b/internal/cabi/_testdata/demo/basic.go @@ -0,0 +1,103 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/basic.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +//go:linkname cbasic_int8 C.basic_int8 +func cbasic_int8(a int8) int8 + +func basic_int8(a int8) int8 { + return a +} + +func init() { + assert("cbasic_int8\000", cbasic_int8(100) == 100) + assert("basic_int8\000", basic_int8(100) == 100) +} + +//go:linkname cbasic_int16 C.basic_int16 +func cbasic_int16(a int16) int16 + +func basic_int16(a int16) int16 { + return a +} + +func init() { + assert("cbasic_int16\000", cbasic_int16(100) == 100) + assert("basic_int16\000", basic_int16(100) == 100) +} + +//go:linkname cbasic_int32 C.basic_int32 +func cbasic_int32(a int32) int32 + +func basic_int32(a int32) int32 { + return a +} + +func init() { + assert("cbasic_int32\000", cbasic_int32(100) == 100) + assert("basic_int32\000", basic_int32(100) == 100) +} + +//go:linkname cbasic_int64 C.basic_int64 +func cbasic_int64(a int64) int64 + +func basic_int64(a int64) int64 { + return a +} + +func init() { + assert("cbasic_int64\000", cbasic_int64(100) == 100) + assert("basic_int64\000", basic_int64(100) == 100) +} + +//go:linkname cbasic_float32 C.basic_float32 +func cbasic_float32(a float32) float32 + +func basic_float32(a float32) float32 { + return a +} + +func init() { + assert("cbasic_float32\000", cbasic_float32(100) == 100) + assert("basic_float32\000", basic_float32(100) == 100) +} + +//go:linkname cbasic_float64 C.basic_float64 +func cbasic_float64(a float64) float64 + +func basic_float64(a float64) float64 { + return a +} + +func init() { + assert("cbasic_float64\000", cbasic_float64(100) == 100) + assert("basic_float64\000", basic_float64(100) == 100) +} + +//go:linkname cbasic_uintptr C.basic_uintptr +func cbasic_uintptr(a uintptr) uintptr + +func basic_uintptr(a uintptr) uintptr { + return a +} + +func init() { + assert("cbasic_uintptr\000", cbasic_uintptr(100) == 100) + assert("basic_uintptr\000", basic_uintptr(100) == 100) +} diff --git a/internal/cabi/_testdata/demo/composite.go b/internal/cabi/_testdata/demo/composite.go new file mode 100644 index 00000000..5ccb5bf2 --- /dev/null +++ b/internal/cabi/_testdata/demo/composite.go @@ -0,0 +1,176 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/composite.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type basearray1 struct { + x [1]int32 +} + +type array10 struct { + base basearray1 +} + +//go:linkname cdemo_array10 C.demo_array10 +func cdemo_array10(a array10) array10 + +func demo_array10(a array10) array10 { + return a +} + +func init() { + v := array10{basearray1{[1]int32{1}}} + assert("cdemo_array10\000", cdemo_array10(v) == v) + assert("demo_array10\000", demo_array10(v) == v) +} + +type array11 struct { + base basearray1 + z int32 +} + +//go:linkname cdemo_array11 C.demo_array11 +func cdemo_array11(a array11) array11 + +func demo_array11(a array11) array11 { + return a +} + +func init() { + v := array11{basearray1{[1]int32{1}}, 3} + assert("cdemo_array11\000", cdemo_array11(v) == v) + assert("demo_array11\000", demo_array11(v) == v) +} + +type basepoint1 struct { + x int32 +} + +type point10 struct { + base basepoint1 +} + +//go:linkname cdemo_point10 C.demo_point10 +func cdemo_point10(a point10) point10 + +func demo_point10(a point10) point10 { + return a +} + +func init() { + v := point10{basepoint1{1}} + assert("cdemo_point10\000", cdemo_point10(v) == v) + assert("demo_point10\000", demo_point10(v) == v) +} + +type point11 struct { + base basepoint1 + z int32 +} + +//go:linkname cdemo_point11 C.demo_point11 +func cdemo_point11(a point11) point11 + +func demo_point11(a point11) point11 { + return a +} + +func init() { + v := point11{basepoint1{1}, 3} + assert("cdemo_point11\000", cdemo_point11(v) == v) + assert("demo_point11\000", demo_point11(v) == v) +} + +type basearray2 struct { + x [2]int32 +} + +type array20 struct { + base basearray2 +} + +//go:linkname cdemo_array20 C.demo_array20 +func cdemo_array20(a array20) array20 + +func demo_array20(a array20) array20 { + return a +} + +func init() { + v := array20{basearray2{[2]int32{1, 2}}} + assert("cdemo_array20\000", cdemo_array20(v) == v) + assert("demo_array20\000", demo_array20(v) == v) +} + +type array21 struct { + base basearray2 + z int32 +} + +//go:linkname cdemo_array21 C.demo_array21 +func cdemo_array21(a array21) array21 + +func demo_array21(a array21) array21 { + return a +} + +func init() { + v := array21{basearray2{[2]int32{1, 2}}, 3} + assert("cdemo_array21\000", cdemo_array21(v) == v) + assert("demo_array21\000", demo_array21(v) == v) +} + +type basepoint2 struct { + x int32 + y int32 +} + +type point20 struct { + base basepoint2 +} + +//go:linkname cdemo_point20 C.demo_point20 +func cdemo_point20(a point20) point20 + +func demo_point20(a point20) point20 { + return a +} + +func init() { + v := point20{basepoint2{1, 2}} + assert("cdemo_point20\000", cdemo_point20(v) == v) + assert("demo_point20\000", demo_point20(v) == v) +} + +type point21 struct { + base basepoint2 + z int32 +} + +//go:linkname cdemo_point21 C.demo_point21 +func cdemo_point21(a point21) point21 + +func demo_point21(a point21) point21 { + return a +} + +func init() { + v := point21{basepoint2{1, 2}, 3} + assert("cdemo_point21\000", cdemo_point21(v) == v) + assert("demo_point21\000", demo_point21(v) == v) +} diff --git a/internal/cabi/_testdata/demo/demo.go b/internal/cabi/_testdata/demo/demo.go new file mode 100644 index 00000000..d4e04681 --- /dev/null +++ b/internal/cabi/_testdata/demo/demo.go @@ -0,0 +1,395 @@ +package main + +import ( + _ "unsafe" +) + +const ( + LLGoFiles = "../wrap/demo.c" +) + +type point struct { + x int32 + y int32 +} + +//go:linkname pt C.pt +func pt(pt point) point + +type point1 struct { + x int32 + y int32 + z int32 +} + +//go:linkname pt1 C.pt1 +func pt1(pt point1) point1 + +type point2 struct { + x int8 + y int32 + z int32 +} + +//go:linkname pt2 C.pt2 +func pt2(pt point2) point2 + +type point3 struct { + x int8 + y int8 + z int8 +} + +//go:linkname pt3 C.pt3 +func pt3(pt point3) point3 + +type point4 struct { + x int8 + y int8 + z int8 + m int32 +} + +//go:linkname pt4 C.pt4 +func pt4(pt point4) point4 + +type point5 struct { + x int8 + y int8 + z int8 + m int8 + n int8 +} + +//go:linkname pt5 C.pt5 +func pt5(pt point5) point5 + +type point6 struct { + x int8 + y int8 + z int8 + m int8 + n int8 + k int32 +} + +//go:linkname pt6 C.pt6 +func pt6(pt point6) point6 + +type point7 struct { + x int8 + y int8 + z int8 + m int8 + n int8 + k int32 + o int8 +} + +//go:linkname pt7 C.pt7 +func pt7(pt point7) point7 + +type data1 struct { + x int8 + y int64 +} + +//go:linkname fn1 C.fn1 +func fn1(data1) data1 + +type data2 struct { + x int32 + y int64 +} + +//go:linkname fn2 C.fn2 +func fn2(data2) data2 + +type data3 struct { + x int64 + y int8 +} + +//go:linkname fn3 C.fn3 +func fn3(data3) data3 + +type fdata1 struct { + x float32 +} + +//go:linkname ff1 C.ff1 +func ff1(fdata1) fdata1 + +type fdata2 struct { + x float32 + y float32 +} + +//go:linkname ff2 C.ff2 +func ff2(fdata2) fdata2 + +type fdata2i struct { + x float32 + y int32 +} + +//go:linkname ff2i C.ff2i +func ff2i(fdata2i) fdata2i + +type fdata3 struct { + x float32 + y float32 + z float32 +} + +//go:linkname ff3 C.ff3 +func ff3(fdata3) fdata3 + +type fdata4 struct { + x float32 + y float32 + z float32 + m float32 +} + +//go:linkname ff4 C.ff4 +func ff4(fdata4) fdata4 + +type fdata5 struct { + x float32 + y float32 + z float32 + m float32 + n float32 +} + +//go:linkname ff5 C.ff5 +func ff5(fdata5) fdata5 + +type fdata2id struct { + x int8 + y int8 + z float64 +} + +//go:linkname ff2id C.ff2id +func ff2id(fdata2id) fdata2id + +type fdata7if struct { + x [7]int8 + y float32 +} + +//go:linkname ff7if C.ff7if +func ff7if(fdata7if) fdata7if + +type fdata4if struct { + x float32 + y int8 + z float32 + m float32 +} + +//go:linkname ff4if C.ff4if +func ff4if(fdata4if) fdata4if + +type array struct { + x [8]int32 +} + +//go:linkname demo64 C.demo64 +func demo64(n int64) int64 + +//go:linkname demo32 C.demo32 +func demo32(n int32) int32 + +type struct32 struct { + v int32 +} + +//go:linkname demo32s C.demo32s +func demo32s(v struct32) struct32 + +type point64 struct { + x int64 + y int64 +} + +//go:linkname pt64 C.pt64 +func pt64(pt point64) point64 + +//go:linkname demo C.demo +func demo(a array) array + +//go:linkname demo2 C.demo2 +func demo2(x int32) array + +type ddata1 struct { + x float64 +} + +//go:linkname dd1 C.dd1 +func dd1(d ddata1) ddata1 + +type ddata2 struct { + x float64 + y float64 +} + +//go:linkname dd2 C.dd2 +func dd2(d ddata2) ddata2 + +type ddata3 struct { + x float64 + y float64 + z float64 +} + +//go:linkname dd3 C.dd3 +func dd3(d ddata3) ddata3 + +//llgo:type C +type Callback func(array, point, point1) array + +//go:linkname callback C.callback +func callback(fn Callback, ar array) + +//llgo:type C +type Callback1 func(array, point, point1) point + +//go:linkname callback1 C.callback1 +func callback1(fn Callback1, ar array) + +//go:linkname mycallback C.mycallback +func mycallback(ar array, pt point, pt1 point1) point + +func myfn1(ar array, pt point, pt1 point1) point { + println("=>", ar.x[0], ar.x[1], ar.x[7], pt.x, pt.y, pt1.x, pt1.y, pt1.z) + return point{100, 200} +} + +//export export_demo +func export_demo(ar array) array { + println("=> export", ar.x[0], ar.x[1], ar.x[7]) + return ar +} + +func main() { + cabi_demo() + callback_demo() +} + +func callback_demo() { + export_demo(array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + + callback(func(ar array, pt point, pt1 point1) array { + println("=> callback", ar.x[0], ar.x[1], ar.x[7], pt.x, pt.y, pt1.x, pt1.y, pt1.z) + return array{x: [8]int32{8, 7, 6, 5, 4, 3, 2, 1}} + }, array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + + callback1(func(ar array, pt point, pt1 point1) point { + println("=> callback1", ar.x[0], ar.x[1], ar.x[7], pt.x, pt.y, pt1.x, pt1.y, pt1.z) + return point{100, 200} + }, array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + ret := mycallback(array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}, point{1, 2}, point1{1, 2, 3}) + println("=> mycallback", ret.x, ret.y) + callback1(myfn1, array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + callback1(myfn1, array{x: [8]int32{8, 7, 6, 5, 4, 3, 2, 1}}) + callback1(mycallback, array{x: [8]int32{10, 20, 30, 40, 50, 60, 70, 80}}) +} + +func cabi_demo() { + i32 := demo32(1024) + println("=> demo32", i32) + + s32 := demo32s(struct32{100}) + println("=> demo32s", s32.v) + + i64 := demo64(1024) + println("=> demo64", i64) + + p64 := pt64(point64{1024, -1024}) + println("=> pt64", p64.x, p64.y) + + r := demo(array{x: [8]int32{1, 2, 3, 4, 5, 6, 7, 8}}) + println("=> demo", r.x[0], r.x[1]) + + r2 := demo2(100) + println("=> demo2", r2.x[0], r2.x[1], r2.x[7]) + + p0 := pt(point{1, 2}) + println("=> pt0", p0.x, p0.y) + + p1 := pt1(point1{1, 2, 3}) + println("=> pt1", p1.x, p1.y, p1.z) + + p2 := pt2(point2{1, 2, 3}) + println("=> pt2", p2.x, p2.y, p2.z) + + p3 := pt3(point3{1, 2, 3}) + println("=> pt3", p3.x, p3.y, p3.z) + + p4 := pt4(point4{1, 2, 3, 4}) + println("=> pt4", p4.x, p4.y, p4.z, p4.m) + + p5 := pt5(point5{1, 2, 3, 4, 5}) + println("=> pt5", p5.x, p5.y, p5.z, p5.m, p5.n) + + p6 := pt6(point6{1, 2, 3, 4, 5, 6}) + println("=> pt6", p6.x, p6.y, p6.z, p6.m, p6.n, p6.k) + + p7 := pt7(point7{1, 2, 3, 4, 5, 6, 7}) + println("=> pt7", p7.x, p7.y, p7.z, p7.m, p7.n, p7.k, p7.o) + + // skip wrap + fd1 := fn1(data1{1, 2}) + println("=> fd1", fd1.x, fd1.y) + + fd2 := fn2(data2{1, 2}) + println("=> fd2", fd2.x, fd2.y) + + fd3 := fn3(data3{1, 2}) + println("=> fd3", fd3.x, fd3.y) + + // float + f1 := ff1(fdata1{1.1}) + println("=> f1", f1.x) + + // float + f2 := ff2(fdata2{1.1, 2.1}) + println("=> f2", f2.x, f2.y) + + // float + f2i := ff2i(fdata2i{1.1, 2}) + println("=> f2i", f2i.x, f2i.y) + + // float + f3 := ff3(fdata3{1.1, 2.1, 3.1}) + println("=> f3", f3.x, f3.y, f3.z) + + // float + f4 := ff4(fdata4{1.1, 2.1, 3.1, 4.1}) + println("=> f4", f4.x, f4.y, f4.z, f4.m) + + // float + f5 := ff5(fdata5{1.1, 2.1, 3.1, 4.1, 5.1}) + println("=> f5", f5.x, f5.y, f5.z, f5.m, f5.n) + + f2id := ff2id(fdata2id{1, 2, 3.1}) + println("=> f2id", f2id.x, f2id.y, f2id.z) + + f7if := ff7if(fdata7if{[7]int8{1, 2, 3, 4, 5, 6, 7}, 3.1}) + println("=> f7if", f7if.x[0], f7if.x[1], f7if.y) + + f4if := ff4if(fdata4if{1.1, 2, 3.1, 4.1}) + println("=> f4if", f4if.x, f4if.y, f4if.z, f4if.m) + + d1 := dd1(ddata1{1.1}) + println("=> dd1", d1.x) + + d2 := dd2(ddata2{1.1, 2.1}) + println("=> dd2", d2.x, d2.y) + + d3 := dd3(ddata3{1.1, 2.1, 3.1}) + println("=> dd3", d3.x, d3.y, d3.z) +} diff --git a/internal/cabi/_testdata/demo/empty.go b/internal/cabi/_testdata/demo/empty.go new file mode 100644 index 00000000..c75e9e5f --- /dev/null +++ b/internal/cabi/_testdata/demo/empty.go @@ -0,0 +1,69 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/empty.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() {} + +type empty struct { +} + +//go:linkname cdemo0 C.demo0 +func cdemo0(empty) empty + +func demo0(a empty) empty { + return a +} + +func init() { + assert("cdemo0", cdemo0(empty{}) == empty{}) + assert("demo0", demo0(empty{}) == empty{}) +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(empty, int32) empty + +func demo1(a empty, b int32) empty { + return a +} + +func init() { + assert("cdemo1", cdemo1(empty{}, 1) == empty{}) + assert("demo1", demo1(empty{}, 2) == empty{}) +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(int32, empty) int32 + +func demo2(v int32, a empty) int32 { + return v +} + +func init() { + assert("cdemo2", cdemo2(100, empty{}) == 100) + assert("demo2", demo2(100, empty{}) == 100) +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(int32, empty, int32) int32 + +func demo3(v int32, a empty, v2 int32) int32 { + return v + v2 +} + +func init() { + assert("cdemo3", cdemo3(1, empty{}, 100) == 101) + assert("demo3", demo3(1, empty{}, 100) == 101) +} diff --git a/internal/cabi/_testdata/demo/struct_float32.go b/internal/cabi/_testdata/demo/struct_float32.go new file mode 100644 index 00000000..baaf4d0e --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_float32.go @@ -0,0 +1,549 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_float32.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 float32 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 float32 + x1 float32 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 float32 + x1 float32 + x2 float32 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2, 3} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2, 3, 4} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2, 3, 4, 5} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2, 3, 4, 5, 6} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2, 3, 4, 5, 6, 7} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2, 3, 4, 5, 6, 7, 8} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 + x13 float32 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 + x13 float32 + x14 float32 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 + x13 float32 + x14 float32 + x15 float32 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 + x13 float32 + x14 float32 + x15 float32 + x16 float32 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 + x13 float32 + x14 float32 + x15 float32 + x16 float32 + x17 float32 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 + x13 float32 + x14 float32 + x15 float32 + x16 float32 + x17 float32 + x18 float32 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 float32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 + x5 float32 + x6 float32 + x7 float32 + x8 float32 + x9 float32 + x10 float32 + x11 float32 + x12 float32 + x13 float32 + x14 float32 + x15 float32 + x16 float32 + x17 float32 + x18 float32 + x19 float32 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_float64.go b/internal/cabi/_testdata/demo/struct_float64.go new file mode 100644 index 00000000..408419a8 --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_float64.go @@ -0,0 +1,549 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_float64.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 float64 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 float64 + x1 float64 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 float64 + x1 float64 + x2 float64 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2, 3} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2, 3, 4} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2, 3, 4, 5} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2, 3, 4, 5, 6} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2, 3, 4, 5, 6, 7} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2, 3, 4, 5, 6, 7, 8} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 + x13 float64 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 + x13 float64 + x14 float64 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 + x13 float64 + x14 float64 + x15 float64 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 + x13 float64 + x14 float64 + x15 float64 + x16 float64 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 + x13 float64 + x14 float64 + x15 float64 + x16 float64 + x17 float64 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 + x13 float64 + x14 float64 + x15 float64 + x16 float64 + x17 float64 + x18 float64 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 float64 + x1 float64 + x2 float64 + x3 float64 + x4 float64 + x5 float64 + x6 float64 + x7 float64 + x8 float64 + x9 float64 + x10 float64 + x11 float64 + x12 float64 + x13 float64 + x14 float64 + x15 float64 + x16 float64 + x17 float64 + x18 float64 + x19 float64 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_int16.go b/internal/cabi/_testdata/demo/struct_int16.go new file mode 100644 index 00000000..66e386d1 --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_int16.go @@ -0,0 +1,549 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_int16.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 int16 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 int16 + x1 int16 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 int16 + x1 int16 + x2 int16 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2, 3} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2, 3, 4} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2, 3, 4, 5} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2, 3, 4, 5, 6} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2, 3, 4, 5, 6, 7} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2, 3, 4, 5, 6, 7, 8} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 + x13 int16 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 + x13 int16 + x14 int16 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 + x13 int16 + x14 int16 + x15 int16 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 + x13 int16 + x14 int16 + x15 int16 + x16 int16 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 + x13 int16 + x14 int16 + x15 int16 + x16 int16 + x17 int16 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 + x13 int16 + x14 int16 + x15 int16 + x16 int16 + x17 int16 + x18 int16 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 int16 + x1 int16 + x2 int16 + x3 int16 + x4 int16 + x5 int16 + x6 int16 + x7 int16 + x8 int16 + x9 int16 + x10 int16 + x11 int16 + x12 int16 + x13 int16 + x14 int16 + x15 int16 + x16 int16 + x17 int16 + x18 int16 + x19 int16 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_int32.go b/internal/cabi/_testdata/demo/struct_int32.go new file mode 100644 index 00000000..2fb70225 --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_int32.go @@ -0,0 +1,549 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_int32.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 int32 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 int32 + x1 int32 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 int32 + x1 int32 + x2 int32 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2, 3} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2, 3, 4} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2, 3, 4, 5} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2, 3, 4, 5, 6} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2, 3, 4, 5, 6, 7} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2, 3, 4, 5, 6, 7, 8} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 + x13 int32 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 + x13 int32 + x14 int32 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 + x13 int32 + x14 int32 + x15 int32 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 + x13 int32 + x14 int32 + x15 int32 + x16 int32 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 + x13 int32 + x14 int32 + x15 int32 + x16 int32 + x17 int32 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 + x13 int32 + x14 int32 + x15 int32 + x16 int32 + x17 int32 + x18 int32 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 int32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 + x5 int32 + x6 int32 + x7 int32 + x8 int32 + x9 int32 + x10 int32 + x11 int32 + x12 int32 + x13 int32 + x14 int32 + x15 int32 + x16 int32 + x17 int32 + x18 int32 + x19 int32 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_int64.go b/internal/cabi/_testdata/demo/struct_int64.go new file mode 100644 index 00000000..78741a12 --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_int64.go @@ -0,0 +1,549 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_int64.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 int64 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 int64 + x1 int64 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 int64 + x1 int64 + x2 int64 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2, 3} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2, 3, 4} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2, 3, 4, 5} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2, 3, 4, 5, 6} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2, 3, 4, 5, 6, 7} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2, 3, 4, 5, 6, 7, 8} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 + x13 int64 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 + x13 int64 + x14 int64 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 + x13 int64 + x14 int64 + x15 int64 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 + x13 int64 + x14 int64 + x15 int64 + x16 int64 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 + x13 int64 + x14 int64 + x15 int64 + x16 int64 + x17 int64 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 + x13 int64 + x14 int64 + x15 int64 + x16 int64 + x17 int64 + x18 int64 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 int64 + x1 int64 + x2 int64 + x3 int64 + x4 int64 + x5 int64 + x6 int64 + x7 int64 + x8 int64 + x9 int64 + x10 int64 + x11 int64 + x12 int64 + x13 int64 + x14 int64 + x15 int64 + x16 int64 + x17 int64 + x18 int64 + x19 int64 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_int8.go b/internal/cabi/_testdata/demo/struct_int8.go new file mode 100644 index 00000000..47ef72a5 --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_int8.go @@ -0,0 +1,549 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_int8.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 int8 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 int8 + x1 int8 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 int8 + x1 int8 + x2 int8 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2, 3} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2, 3, 4} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2, 3, 4, 5} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2, 3, 4, 5, 6} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2, 3, 4, 5, 6, 7} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2, 3, 4, 5, 6, 7, 8} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 + x13 int8 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 + x13 int8 + x14 int8 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 + x13 int8 + x14 int8 + x15 int8 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 + x13 int8 + x14 int8 + x15 int8 + x16 int8 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 + x13 int8 + x14 int8 + x15 int8 + x16 int8 + x17 int8 +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 + x13 int8 + x14 int8 + x15 int8 + x16 int8 + x17 int8 + x18 int8 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 int8 + x1 int8 + x2 int8 + x3 int8 + x4 int8 + x5 int8 + x6 int8 + x7 int8 + x8 int8 + x9 int8 + x10 int8 + x11 int8 + x12 int8 + x13 int8 + x14 int8 + x15 int8 + x16 int8 + x17 int8 + x18 int8 + x19 int8 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_mixed.go b/internal/cabi/_testdata/demo/struct_mixed.go new file mode 100644 index 00000000..9393689c --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_mixed.go @@ -0,0 +1,21655 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_mixed.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 int8 + x1 int16 +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1, 2} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 int8 + x1 int32 +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 int8 + x1 int64 +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 int8 + x1 float32 +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 int8 + x1 float64 +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 int8 + x1 uintptr +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 int16 + x1 int8 +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 int16 + x1 int32 +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 int16 + x1 int64 +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 int16 + x1 float32 +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 int16 + x1 float64 +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 int16 + x1 uintptr +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 int32 + x1 int8 +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 int32 + x1 int16 +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 int32 + x1 int64 +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 int32 + x1 float32 +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 int32 + x1 float64 +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 int32 + x1 uintptr +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 int64 + x1 int8 +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 int64 + x1 int16 +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} + +type point21 struct { + x0 int64 + x1 int32 +} + +//go:linkname cdemo21 C.demo21 +func cdemo21(a point21) point21 + +func demo21(a point21) point21 { + return a +} + +func init() { + a := point21{1, 2} + assert("cdemo21\000", cdemo21(a) == a) + assert("demo21\000", demo21(a) == a) +} + +type point22 struct { + x0 int64 + x1 float32 +} + +//go:linkname cdemo22 C.demo22 +func cdemo22(a point22) point22 + +func demo22(a point22) point22 { + return a +} + +func init() { + a := point22{1, 2} + assert("cdemo22\000", cdemo22(a) == a) + assert("demo22\000", demo22(a) == a) +} + +type point23 struct { + x0 int64 + x1 float64 +} + +//go:linkname cdemo23 C.demo23 +func cdemo23(a point23) point23 + +func demo23(a point23) point23 { + return a +} + +func init() { + a := point23{1, 2} + assert("cdemo23\000", cdemo23(a) == a) + assert("demo23\000", demo23(a) == a) +} + +type point24 struct { + x0 int64 + x1 uintptr +} + +//go:linkname cdemo24 C.demo24 +func cdemo24(a point24) point24 + +func demo24(a point24) point24 { + return a +} + +func init() { + a := point24{1, 2} + assert("cdemo24\000", cdemo24(a) == a) + assert("demo24\000", demo24(a) == a) +} + +type point25 struct { + x0 float32 + x1 int8 +} + +//go:linkname cdemo25 C.demo25 +func cdemo25(a point25) point25 + +func demo25(a point25) point25 { + return a +} + +func init() { + a := point25{1, 2} + assert("cdemo25\000", cdemo25(a) == a) + assert("demo25\000", demo25(a) == a) +} + +type point26 struct { + x0 float32 + x1 int16 +} + +//go:linkname cdemo26 C.demo26 +func cdemo26(a point26) point26 + +func demo26(a point26) point26 { + return a +} + +func init() { + a := point26{1, 2} + assert("cdemo26\000", cdemo26(a) == a) + assert("demo26\000", demo26(a) == a) +} + +type point27 struct { + x0 float32 + x1 int32 +} + +//go:linkname cdemo27 C.demo27 +func cdemo27(a point27) point27 + +func demo27(a point27) point27 { + return a +} + +func init() { + a := point27{1, 2} + assert("cdemo27\000", cdemo27(a) == a) + assert("demo27\000", demo27(a) == a) +} + +type point28 struct { + x0 float32 + x1 int64 +} + +//go:linkname cdemo28 C.demo28 +func cdemo28(a point28) point28 + +func demo28(a point28) point28 { + return a +} + +func init() { + a := point28{1, 2} + assert("cdemo28\000", cdemo28(a) == a) + assert("demo28\000", demo28(a) == a) +} + +type point29 struct { + x0 float32 + x1 float64 +} + +//go:linkname cdemo29 C.demo29 +func cdemo29(a point29) point29 + +func demo29(a point29) point29 { + return a +} + +func init() { + a := point29{1, 2} + assert("cdemo29\000", cdemo29(a) == a) + assert("demo29\000", demo29(a) == a) +} + +type point30 struct { + x0 float32 + x1 uintptr +} + +//go:linkname cdemo30 C.demo30 +func cdemo30(a point30) point30 + +func demo30(a point30) point30 { + return a +} + +func init() { + a := point30{1, 2} + assert("cdemo30\000", cdemo30(a) == a) + assert("demo30\000", demo30(a) == a) +} + +type point31 struct { + x0 float64 + x1 int8 +} + +//go:linkname cdemo31 C.demo31 +func cdemo31(a point31) point31 + +func demo31(a point31) point31 { + return a +} + +func init() { + a := point31{1, 2} + assert("cdemo31\000", cdemo31(a) == a) + assert("demo31\000", demo31(a) == a) +} + +type point32 struct { + x0 float64 + x1 int16 +} + +//go:linkname cdemo32 C.demo32 +func cdemo32(a point32) point32 + +func demo32(a point32) point32 { + return a +} + +func init() { + a := point32{1, 2} + assert("cdemo32\000", cdemo32(a) == a) + assert("demo32\000", demo32(a) == a) +} + +type point33 struct { + x0 float64 + x1 int32 +} + +//go:linkname cdemo33 C.demo33 +func cdemo33(a point33) point33 + +func demo33(a point33) point33 { + return a +} + +func init() { + a := point33{1, 2} + assert("cdemo33\000", cdemo33(a) == a) + assert("demo33\000", demo33(a) == a) +} + +type point34 struct { + x0 float64 + x1 int64 +} + +//go:linkname cdemo34 C.demo34 +func cdemo34(a point34) point34 + +func demo34(a point34) point34 { + return a +} + +func init() { + a := point34{1, 2} + assert("cdemo34\000", cdemo34(a) == a) + assert("demo34\000", demo34(a) == a) +} + +type point35 struct { + x0 float64 + x1 float32 +} + +//go:linkname cdemo35 C.demo35 +func cdemo35(a point35) point35 + +func demo35(a point35) point35 { + return a +} + +func init() { + a := point35{1, 2} + assert("cdemo35\000", cdemo35(a) == a) + assert("demo35\000", demo35(a) == a) +} + +type point36 struct { + x0 float64 + x1 uintptr +} + +//go:linkname cdemo36 C.demo36 +func cdemo36(a point36) point36 + +func demo36(a point36) point36 { + return a +} + +func init() { + a := point36{1, 2} + assert("cdemo36\000", cdemo36(a) == a) + assert("demo36\000", demo36(a) == a) +} + +type point37 struct { + x0 uintptr + x1 int8 +} + +//go:linkname cdemo37 C.demo37 +func cdemo37(a point37) point37 + +func demo37(a point37) point37 { + return a +} + +func init() { + a := point37{1, 2} + assert("cdemo37\000", cdemo37(a) == a) + assert("demo37\000", demo37(a) == a) +} + +type point38 struct { + x0 uintptr + x1 int16 +} + +//go:linkname cdemo38 C.demo38 +func cdemo38(a point38) point38 + +func demo38(a point38) point38 { + return a +} + +func init() { + a := point38{1, 2} + assert("cdemo38\000", cdemo38(a) == a) + assert("demo38\000", demo38(a) == a) +} + +type point39 struct { + x0 uintptr + x1 int32 +} + +//go:linkname cdemo39 C.demo39 +func cdemo39(a point39) point39 + +func demo39(a point39) point39 { + return a +} + +func init() { + a := point39{1, 2} + assert("cdemo39\000", cdemo39(a) == a) + assert("demo39\000", demo39(a) == a) +} + +type point40 struct { + x0 uintptr + x1 int64 +} + +//go:linkname cdemo40 C.demo40 +func cdemo40(a point40) point40 + +func demo40(a point40) point40 { + return a +} + +func init() { + a := point40{1, 2} + assert("cdemo40\000", cdemo40(a) == a) + assert("demo40\000", demo40(a) == a) +} + +type point41 struct { + x0 uintptr + x1 float32 +} + +//go:linkname cdemo41 C.demo41 +func cdemo41(a point41) point41 + +func demo41(a point41) point41 { + return a +} + +func init() { + a := point41{1, 2} + assert("cdemo41\000", cdemo41(a) == a) + assert("demo41\000", demo41(a) == a) +} + +type point42 struct { + x0 uintptr + x1 float64 +} + +//go:linkname cdemo42 C.demo42 +func cdemo42(a point42) point42 + +func demo42(a point42) point42 { + return a +} + +func init() { + a := point42{1, 2} + assert("cdemo42\000", cdemo42(a) == a) + assert("demo42\000", demo42(a) == a) +} + +type point43 struct { + x0 int8 + x1 int16 + x2 int8 +} + +//go:linkname cdemo43 C.demo43 +func cdemo43(a point43) point43 + +func demo43(a point43) point43 { + return a +} + +func init() { + a := point43{1, 2, 3} + assert("cdemo43\000", cdemo43(a) == a) + assert("demo43\000", demo43(a) == a) +} + +type point44 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int8 +} + +//go:linkname cdemo44 C.demo44 +func cdemo44(a point44) point44 + +func demo44(a point44) point44 { + return a +} + +func init() { + a := point44{1, 2, 3, 4} + assert("cdemo44\000", cdemo44(a) == a) + assert("demo44\000", demo44(a) == a) +} + +type point45 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo45 C.demo45 +func cdemo45(a point45) point45 + +func demo45(a point45) point45 { + return a +} + +func init() { + a := point45{1, 2, 3, 4, 5} + assert("cdemo45\000", cdemo45(a) == a) + assert("demo45\000", demo45(a) == a) +} + +type point46 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo46 C.demo46 +func cdemo46(a point46) point46 + +func demo46(a point46) point46 { + return a +} + +func init() { + a := point46{1, 2, 3, 4, 5} + assert("cdemo46\000", cdemo46(a) == a) + assert("demo46\000", demo46(a) == a) +} + +type point47 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo47 C.demo47 +func cdemo47(a point47) point47 + +func demo47(a point47) point47 { + return a +} + +func init() { + a := point47{1, 2, 3, 4, 5} + assert("cdemo47\000", cdemo47(a) == a) + assert("demo47\000", demo47(a) == a) +} + +type point48 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo48 C.demo48 +func cdemo48(a point48) point48 + +func demo48(a point48) point48 { + return a +} + +func init() { + a := point48{1, 2, 3, 4, 5} + assert("cdemo48\000", cdemo48(a) == a) + assert("demo48\000", demo48(a) == a) +} + +type point49 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int16 +} + +//go:linkname cdemo49 C.demo49 +func cdemo49(a point49) point49 + +func demo49(a point49) point49 { + return a +} + +func init() { + a := point49{1, 2, 3, 4} + assert("cdemo49\000", cdemo49(a) == a) + assert("demo49\000", demo49(a) == a) +} + +type point50 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo50 C.demo50 +func cdemo50(a point50) point50 + +func demo50(a point50) point50 { + return a +} + +func init() { + a := point50{1, 2, 3, 4, 5} + assert("cdemo50\000", cdemo50(a) == a) + assert("demo50\000", demo50(a) == a) +} + +type point51 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo51 C.demo51 +func cdemo51(a point51) point51 + +func demo51(a point51) point51 { + return a +} + +func init() { + a := point51{1, 2, 3, 4, 5} + assert("cdemo51\000", cdemo51(a) == a) + assert("demo51\000", demo51(a) == a) +} + +type point52 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo52 C.demo52 +func cdemo52(a point52) point52 + +func demo52(a point52) point52 { + return a +} + +func init() { + a := point52{1, 2, 3, 4, 5} + assert("cdemo52\000", cdemo52(a) == a) + assert("demo52\000", demo52(a) == a) +} + +type point53 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo53 C.demo53 +func cdemo53(a point53) point53 + +func demo53(a point53) point53 { + return a +} + +func init() { + a := point53{1, 2, 3, 4, 5} + assert("cdemo53\000", cdemo53(a) == a) + assert("demo53\000", demo53(a) == a) +} + +type point54 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int32 +} + +//go:linkname cdemo54 C.demo54 +func cdemo54(a point54) point54 + +func demo54(a point54) point54 { + return a +} + +func init() { + a := point54{1, 2, 3, 4} + assert("cdemo54\000", cdemo54(a) == a) + assert("demo54\000", demo54(a) == a) +} + +type point55 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo55 C.demo55 +func cdemo55(a point55) point55 + +func demo55(a point55) point55 { + return a +} + +func init() { + a := point55{1, 2, 3, 4, 5} + assert("cdemo55\000", cdemo55(a) == a) + assert("demo55\000", demo55(a) == a) +} + +type point56 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo56 C.demo56 +func cdemo56(a point56) point56 + +func demo56(a point56) point56 { + return a +} + +func init() { + a := point56{1, 2, 3, 4, 5} + assert("cdemo56\000", cdemo56(a) == a) + assert("demo56\000", demo56(a) == a) +} + +type point57 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo57 C.demo57 +func cdemo57(a point57) point57 + +func demo57(a point57) point57 { + return a +} + +func init() { + a := point57{1, 2, 3, 4, 5} + assert("cdemo57\000", cdemo57(a) == a) + assert("demo57\000", demo57(a) == a) +} + +type point58 struct { + x0 int8 + x1 int16 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo58 C.demo58 +func cdemo58(a point58) point58 + +func demo58(a point58) point58 { + return a +} + +func init() { + a := point58{1, 2, 3, 4, 5} + assert("cdemo58\000", cdemo58(a) == a) + assert("demo58\000", demo58(a) == a) +} + +type point59 struct { + x0 int8 + x1 int16 + x2 int8 + x3 float32 +} + +//go:linkname cdemo59 C.demo59 +func cdemo59(a point59) point59 + +func demo59(a point59) point59 { + return a +} + +func init() { + a := point59{1, 2, 3, 4} + assert("cdemo59\000", cdemo59(a) == a) + assert("demo59\000", demo59(a) == a) +} + +type point60 struct { + x0 int8 + x1 int16 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo60 C.demo60 +func cdemo60(a point60) point60 + +func demo60(a point60) point60 { + return a +} + +func init() { + a := point60{1, 2, 3, 4, 5} + assert("cdemo60\000", cdemo60(a) == a) + assert("demo60\000", demo60(a) == a) +} + +type point61 struct { + x0 int8 + x1 int16 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo61 C.demo61 +func cdemo61(a point61) point61 + +func demo61(a point61) point61 { + return a +} + +func init() { + a := point61{1, 2, 3, 4, 5} + assert("cdemo61\000", cdemo61(a) == a) + assert("demo61\000", demo61(a) == a) +} + +type point62 struct { + x0 int8 + x1 int16 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo62 C.demo62 +func cdemo62(a point62) point62 + +func demo62(a point62) point62 { + return a +} + +func init() { + a := point62{1, 2, 3, 4, 5} + assert("cdemo62\000", cdemo62(a) == a) + assert("demo62\000", demo62(a) == a) +} + +type point63 struct { + x0 int8 + x1 int16 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo63 C.demo63 +func cdemo63(a point63) point63 + +func demo63(a point63) point63 { + return a +} + +func init() { + a := point63{1, 2, 3, 4, 5} + assert("cdemo63\000", cdemo63(a) == a) + assert("demo63\000", demo63(a) == a) +} + +type point64 struct { + x0 int8 + x1 int16 + x2 int16 +} + +//go:linkname cdemo64 C.demo64 +func cdemo64(a point64) point64 + +func demo64(a point64) point64 { + return a +} + +func init() { + a := point64{1, 2, 3} + assert("cdemo64\000", cdemo64(a) == a) + assert("demo64\000", demo64(a) == a) +} + +type point65 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int8 +} + +//go:linkname cdemo65 C.demo65 +func cdemo65(a point65) point65 + +func demo65(a point65) point65 { + return a +} + +func init() { + a := point65{1, 2, 3, 4} + assert("cdemo65\000", cdemo65(a) == a) + assert("demo65\000", demo65(a) == a) +} + +type point66 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo66 C.demo66 +func cdemo66(a point66) point66 + +func demo66(a point66) point66 { + return a +} + +func init() { + a := point66{1, 2, 3, 4, 5} + assert("cdemo66\000", cdemo66(a) == a) + assert("demo66\000", demo66(a) == a) +} + +type point67 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo67 C.demo67 +func cdemo67(a point67) point67 + +func demo67(a point67) point67 { + return a +} + +func init() { + a := point67{1, 2, 3, 4, 5} + assert("cdemo67\000", cdemo67(a) == a) + assert("demo67\000", demo67(a) == a) +} + +type point68 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo68 C.demo68 +func cdemo68(a point68) point68 + +func demo68(a point68) point68 { + return a +} + +func init() { + a := point68{1, 2, 3, 4, 5} + assert("cdemo68\000", cdemo68(a) == a) + assert("demo68\000", demo68(a) == a) +} + +type point69 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo69 C.demo69 +func cdemo69(a point69) point69 + +func demo69(a point69) point69 { + return a +} + +func init() { + a := point69{1, 2, 3, 4, 5} + assert("cdemo69\000", cdemo69(a) == a) + assert("demo69\000", demo69(a) == a) +} + +type point70 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int16 +} + +//go:linkname cdemo70 C.demo70 +func cdemo70(a point70) point70 + +func demo70(a point70) point70 { + return a +} + +func init() { + a := point70{1, 2, 3, 4} + assert("cdemo70\000", cdemo70(a) == a) + assert("demo70\000", demo70(a) == a) +} + +type point71 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo71 C.demo71 +func cdemo71(a point71) point71 + +func demo71(a point71) point71 { + return a +} + +func init() { + a := point71{1, 2, 3, 4, 5} + assert("cdemo71\000", cdemo71(a) == a) + assert("demo71\000", demo71(a) == a) +} + +type point72 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo72 C.demo72 +func cdemo72(a point72) point72 + +func demo72(a point72) point72 { + return a +} + +func init() { + a := point72{1, 2, 3, 4, 5} + assert("cdemo72\000", cdemo72(a) == a) + assert("demo72\000", demo72(a) == a) +} + +type point73 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo73 C.demo73 +func cdemo73(a point73) point73 + +func demo73(a point73) point73 { + return a +} + +func init() { + a := point73{1, 2, 3, 4, 5} + assert("cdemo73\000", cdemo73(a) == a) + assert("demo73\000", demo73(a) == a) +} + +type point74 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo74 C.demo74 +func cdemo74(a point74) point74 + +func demo74(a point74) point74 { + return a +} + +func init() { + a := point74{1, 2, 3, 4, 5} + assert("cdemo74\000", cdemo74(a) == a) + assert("demo74\000", demo74(a) == a) +} + +type point75 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int32 +} + +//go:linkname cdemo75 C.demo75 +func cdemo75(a point75) point75 + +func demo75(a point75) point75 { + return a +} + +func init() { + a := point75{1, 2, 3, 4} + assert("cdemo75\000", cdemo75(a) == a) + assert("demo75\000", demo75(a) == a) +} + +type point76 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo76 C.demo76 +func cdemo76(a point76) point76 + +func demo76(a point76) point76 { + return a +} + +func init() { + a := point76{1, 2, 3, 4, 5} + assert("cdemo76\000", cdemo76(a) == a) + assert("demo76\000", demo76(a) == a) +} + +type point77 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo77 C.demo77 +func cdemo77(a point77) point77 + +func demo77(a point77) point77 { + return a +} + +func init() { + a := point77{1, 2, 3, 4, 5} + assert("cdemo77\000", cdemo77(a) == a) + assert("demo77\000", demo77(a) == a) +} + +type point78 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo78 C.demo78 +func cdemo78(a point78) point78 + +func demo78(a point78) point78 { + return a +} + +func init() { + a := point78{1, 2, 3, 4, 5} + assert("cdemo78\000", cdemo78(a) == a) + assert("demo78\000", demo78(a) == a) +} + +type point79 struct { + x0 int8 + x1 int16 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo79 C.demo79 +func cdemo79(a point79) point79 + +func demo79(a point79) point79 { + return a +} + +func init() { + a := point79{1, 2, 3, 4, 5} + assert("cdemo79\000", cdemo79(a) == a) + assert("demo79\000", demo79(a) == a) +} + +type point80 struct { + x0 int8 + x1 int16 + x2 int16 + x3 float32 +} + +//go:linkname cdemo80 C.demo80 +func cdemo80(a point80) point80 + +func demo80(a point80) point80 { + return a +} + +func init() { + a := point80{1, 2, 3, 4} + assert("cdemo80\000", cdemo80(a) == a) + assert("demo80\000", demo80(a) == a) +} + +type point81 struct { + x0 int8 + x1 int16 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo81 C.demo81 +func cdemo81(a point81) point81 + +func demo81(a point81) point81 { + return a +} + +func init() { + a := point81{1, 2, 3, 4, 5} + assert("cdemo81\000", cdemo81(a) == a) + assert("demo81\000", demo81(a) == a) +} + +type point82 struct { + x0 int8 + x1 int16 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo82 C.demo82 +func cdemo82(a point82) point82 + +func demo82(a point82) point82 { + return a +} + +func init() { + a := point82{1, 2, 3, 4, 5} + assert("cdemo82\000", cdemo82(a) == a) + assert("demo82\000", demo82(a) == a) +} + +type point83 struct { + x0 int8 + x1 int16 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo83 C.demo83 +func cdemo83(a point83) point83 + +func demo83(a point83) point83 { + return a +} + +func init() { + a := point83{1, 2, 3, 4, 5} + assert("cdemo83\000", cdemo83(a) == a) + assert("demo83\000", demo83(a) == a) +} + +type point84 struct { + x0 int8 + x1 int16 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo84 C.demo84 +func cdemo84(a point84) point84 + +func demo84(a point84) point84 { + return a +} + +func init() { + a := point84{1, 2, 3, 4, 5} + assert("cdemo84\000", cdemo84(a) == a) + assert("demo84\000", demo84(a) == a) +} + +type point85 struct { + x0 int8 + x1 int16 + x2 int32 +} + +//go:linkname cdemo85 C.demo85 +func cdemo85(a point85) point85 + +func demo85(a point85) point85 { + return a +} + +func init() { + a := point85{1, 2, 3} + assert("cdemo85\000", cdemo85(a) == a) + assert("demo85\000", demo85(a) == a) +} + +type point86 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int8 +} + +//go:linkname cdemo86 C.demo86 +func cdemo86(a point86) point86 + +func demo86(a point86) point86 { + return a +} + +func init() { + a := point86{1, 2, 3, 4} + assert("cdemo86\000", cdemo86(a) == a) + assert("demo86\000", demo86(a) == a) +} + +type point87 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo87 C.demo87 +func cdemo87(a point87) point87 + +func demo87(a point87) point87 { + return a +} + +func init() { + a := point87{1, 2, 3, 4, 5} + assert("cdemo87\000", cdemo87(a) == a) + assert("demo87\000", demo87(a) == a) +} + +type point88 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo88 C.demo88 +func cdemo88(a point88) point88 + +func demo88(a point88) point88 { + return a +} + +func init() { + a := point88{1, 2, 3, 4, 5} + assert("cdemo88\000", cdemo88(a) == a) + assert("demo88\000", demo88(a) == a) +} + +type point89 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo89 C.demo89 +func cdemo89(a point89) point89 + +func demo89(a point89) point89 { + return a +} + +func init() { + a := point89{1, 2, 3, 4, 5} + assert("cdemo89\000", cdemo89(a) == a) + assert("demo89\000", demo89(a) == a) +} + +type point90 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo90 C.demo90 +func cdemo90(a point90) point90 + +func demo90(a point90) point90 { + return a +} + +func init() { + a := point90{1, 2, 3, 4, 5} + assert("cdemo90\000", cdemo90(a) == a) + assert("demo90\000", demo90(a) == a) +} + +type point91 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int16 +} + +//go:linkname cdemo91 C.demo91 +func cdemo91(a point91) point91 + +func demo91(a point91) point91 { + return a +} + +func init() { + a := point91{1, 2, 3, 4} + assert("cdemo91\000", cdemo91(a) == a) + assert("demo91\000", demo91(a) == a) +} + +type point92 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo92 C.demo92 +func cdemo92(a point92) point92 + +func demo92(a point92) point92 { + return a +} + +func init() { + a := point92{1, 2, 3, 4, 5} + assert("cdemo92\000", cdemo92(a) == a) + assert("demo92\000", demo92(a) == a) +} + +type point93 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo93 C.demo93 +func cdemo93(a point93) point93 + +func demo93(a point93) point93 { + return a +} + +func init() { + a := point93{1, 2, 3, 4, 5} + assert("cdemo93\000", cdemo93(a) == a) + assert("demo93\000", demo93(a) == a) +} + +type point94 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo94 C.demo94 +func cdemo94(a point94) point94 + +func demo94(a point94) point94 { + return a +} + +func init() { + a := point94{1, 2, 3, 4, 5} + assert("cdemo94\000", cdemo94(a) == a) + assert("demo94\000", demo94(a) == a) +} + +type point95 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo95 C.demo95 +func cdemo95(a point95) point95 + +func demo95(a point95) point95 { + return a +} + +func init() { + a := point95{1, 2, 3, 4, 5} + assert("cdemo95\000", cdemo95(a) == a) + assert("demo95\000", demo95(a) == a) +} + +type point96 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int32 +} + +//go:linkname cdemo96 C.demo96 +func cdemo96(a point96) point96 + +func demo96(a point96) point96 { + return a +} + +func init() { + a := point96{1, 2, 3, 4} + assert("cdemo96\000", cdemo96(a) == a) + assert("demo96\000", demo96(a) == a) +} + +type point97 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo97 C.demo97 +func cdemo97(a point97) point97 + +func demo97(a point97) point97 { + return a +} + +func init() { + a := point97{1, 2, 3, 4, 5} + assert("cdemo97\000", cdemo97(a) == a) + assert("demo97\000", demo97(a) == a) +} + +type point98 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo98 C.demo98 +func cdemo98(a point98) point98 + +func demo98(a point98) point98 { + return a +} + +func init() { + a := point98{1, 2, 3, 4, 5} + assert("cdemo98\000", cdemo98(a) == a) + assert("demo98\000", demo98(a) == a) +} + +type point99 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo99 C.demo99 +func cdemo99(a point99) point99 + +func demo99(a point99) point99 { + return a +} + +func init() { + a := point99{1, 2, 3, 4, 5} + assert("cdemo99\000", cdemo99(a) == a) + assert("demo99\000", demo99(a) == a) +} + +type point100 struct { + x0 int8 + x1 int16 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo100 C.demo100 +func cdemo100(a point100) point100 + +func demo100(a point100) point100 { + return a +} + +func init() { + a := point100{1, 2, 3, 4, 5} + assert("cdemo100\000", cdemo100(a) == a) + assert("demo100\000", demo100(a) == a) +} + +type point101 struct { + x0 int8 + x1 int16 + x2 int32 + x3 float32 +} + +//go:linkname cdemo101 C.demo101 +func cdemo101(a point101) point101 + +func demo101(a point101) point101 { + return a +} + +func init() { + a := point101{1, 2, 3, 4} + assert("cdemo101\000", cdemo101(a) == a) + assert("demo101\000", demo101(a) == a) +} + +type point102 struct { + x0 int8 + x1 int16 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo102 C.demo102 +func cdemo102(a point102) point102 + +func demo102(a point102) point102 { + return a +} + +func init() { + a := point102{1, 2, 3, 4, 5} + assert("cdemo102\000", cdemo102(a) == a) + assert("demo102\000", demo102(a) == a) +} + +type point103 struct { + x0 int8 + x1 int16 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo103 C.demo103 +func cdemo103(a point103) point103 + +func demo103(a point103) point103 { + return a +} + +func init() { + a := point103{1, 2, 3, 4, 5} + assert("cdemo103\000", cdemo103(a) == a) + assert("demo103\000", demo103(a) == a) +} + +type point104 struct { + x0 int8 + x1 int16 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo104 C.demo104 +func cdemo104(a point104) point104 + +func demo104(a point104) point104 { + return a +} + +func init() { + a := point104{1, 2, 3, 4, 5} + assert("cdemo104\000", cdemo104(a) == a) + assert("demo104\000", demo104(a) == a) +} + +type point105 struct { + x0 int8 + x1 int16 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo105 C.demo105 +func cdemo105(a point105) point105 + +func demo105(a point105) point105 { + return a +} + +func init() { + a := point105{1, 2, 3, 4, 5} + assert("cdemo105\000", cdemo105(a) == a) + assert("demo105\000", demo105(a) == a) +} + +type point106 struct { + x0 int8 + x1 int16 + x2 float32 +} + +//go:linkname cdemo106 C.demo106 +func cdemo106(a point106) point106 + +func demo106(a point106) point106 { + return a +} + +func init() { + a := point106{1, 2, 3} + assert("cdemo106\000", cdemo106(a) == a) + assert("demo106\000", demo106(a) == a) +} + +type point107 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int8 +} + +//go:linkname cdemo107 C.demo107 +func cdemo107(a point107) point107 + +func demo107(a point107) point107 { + return a +} + +func init() { + a := point107{1, 2, 3, 4} + assert("cdemo107\000", cdemo107(a) == a) + assert("demo107\000", demo107(a) == a) +} + +type point108 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo108 C.demo108 +func cdemo108(a point108) point108 + +func demo108(a point108) point108 { + return a +} + +func init() { + a := point108{1, 2, 3, 4, 5} + assert("cdemo108\000", cdemo108(a) == a) + assert("demo108\000", demo108(a) == a) +} + +type point109 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo109 C.demo109 +func cdemo109(a point109) point109 + +func demo109(a point109) point109 { + return a +} + +func init() { + a := point109{1, 2, 3, 4, 5} + assert("cdemo109\000", cdemo109(a) == a) + assert("demo109\000", demo109(a) == a) +} + +type point110 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo110 C.demo110 +func cdemo110(a point110) point110 + +func demo110(a point110) point110 { + return a +} + +func init() { + a := point110{1, 2, 3, 4, 5} + assert("cdemo110\000", cdemo110(a) == a) + assert("demo110\000", demo110(a) == a) +} + +type point111 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo111 C.demo111 +func cdemo111(a point111) point111 + +func demo111(a point111) point111 { + return a +} + +func init() { + a := point111{1, 2, 3, 4, 5} + assert("cdemo111\000", cdemo111(a) == a) + assert("demo111\000", demo111(a) == a) +} + +type point112 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int16 +} + +//go:linkname cdemo112 C.demo112 +func cdemo112(a point112) point112 + +func demo112(a point112) point112 { + return a +} + +func init() { + a := point112{1, 2, 3, 4} + assert("cdemo112\000", cdemo112(a) == a) + assert("demo112\000", demo112(a) == a) +} + +type point113 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo113 C.demo113 +func cdemo113(a point113) point113 + +func demo113(a point113) point113 { + return a +} + +func init() { + a := point113{1, 2, 3, 4, 5} + assert("cdemo113\000", cdemo113(a) == a) + assert("demo113\000", demo113(a) == a) +} + +type point114 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo114 C.demo114 +func cdemo114(a point114) point114 + +func demo114(a point114) point114 { + return a +} + +func init() { + a := point114{1, 2, 3, 4, 5} + assert("cdemo114\000", cdemo114(a) == a) + assert("demo114\000", demo114(a) == a) +} + +type point115 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo115 C.demo115 +func cdemo115(a point115) point115 + +func demo115(a point115) point115 { + return a +} + +func init() { + a := point115{1, 2, 3, 4, 5} + assert("cdemo115\000", cdemo115(a) == a) + assert("demo115\000", demo115(a) == a) +} + +type point116 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo116 C.demo116 +func cdemo116(a point116) point116 + +func demo116(a point116) point116 { + return a +} + +func init() { + a := point116{1, 2, 3, 4, 5} + assert("cdemo116\000", cdemo116(a) == a) + assert("demo116\000", demo116(a) == a) +} + +type point117 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int32 +} + +//go:linkname cdemo117 C.demo117 +func cdemo117(a point117) point117 + +func demo117(a point117) point117 { + return a +} + +func init() { + a := point117{1, 2, 3, 4} + assert("cdemo117\000", cdemo117(a) == a) + assert("demo117\000", demo117(a) == a) +} + +type point118 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo118 C.demo118 +func cdemo118(a point118) point118 + +func demo118(a point118) point118 { + return a +} + +func init() { + a := point118{1, 2, 3, 4, 5} + assert("cdemo118\000", cdemo118(a) == a) + assert("demo118\000", demo118(a) == a) +} + +type point119 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo119 C.demo119 +func cdemo119(a point119) point119 + +func demo119(a point119) point119 { + return a +} + +func init() { + a := point119{1, 2, 3, 4, 5} + assert("cdemo119\000", cdemo119(a) == a) + assert("demo119\000", demo119(a) == a) +} + +type point120 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo120 C.demo120 +func cdemo120(a point120) point120 + +func demo120(a point120) point120 { + return a +} + +func init() { + a := point120{1, 2, 3, 4, 5} + assert("cdemo120\000", cdemo120(a) == a) + assert("demo120\000", demo120(a) == a) +} + +type point121 struct { + x0 int8 + x1 int16 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo121 C.demo121 +func cdemo121(a point121) point121 + +func demo121(a point121) point121 { + return a +} + +func init() { + a := point121{1, 2, 3, 4, 5} + assert("cdemo121\000", cdemo121(a) == a) + assert("demo121\000", demo121(a) == a) +} + +type point122 struct { + x0 int8 + x1 int16 + x2 float32 + x3 float32 +} + +//go:linkname cdemo122 C.demo122 +func cdemo122(a point122) point122 + +func demo122(a point122) point122 { + return a +} + +func init() { + a := point122{1, 2, 3, 4} + assert("cdemo122\000", cdemo122(a) == a) + assert("demo122\000", demo122(a) == a) +} + +type point123 struct { + x0 int8 + x1 int16 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo123 C.demo123 +func cdemo123(a point123) point123 + +func demo123(a point123) point123 { + return a +} + +func init() { + a := point123{1, 2, 3, 4, 5} + assert("cdemo123\000", cdemo123(a) == a) + assert("demo123\000", demo123(a) == a) +} + +type point124 struct { + x0 int8 + x1 int16 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo124 C.demo124 +func cdemo124(a point124) point124 + +func demo124(a point124) point124 { + return a +} + +func init() { + a := point124{1, 2, 3, 4, 5} + assert("cdemo124\000", cdemo124(a) == a) + assert("demo124\000", demo124(a) == a) +} + +type point125 struct { + x0 int8 + x1 int16 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo125 C.demo125 +func cdemo125(a point125) point125 + +func demo125(a point125) point125 { + return a +} + +func init() { + a := point125{1, 2, 3, 4, 5} + assert("cdemo125\000", cdemo125(a) == a) + assert("demo125\000", demo125(a) == a) +} + +type point126 struct { + x0 int8 + x1 int16 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo126 C.demo126 +func cdemo126(a point126) point126 + +func demo126(a point126) point126 { + return a +} + +func init() { + a := point126{1, 2, 3, 4, 5} + assert("cdemo126\000", cdemo126(a) == a) + assert("demo126\000", demo126(a) == a) +} + +type point127 struct { + x0 int8 + x1 int32 + x2 int8 +} + +//go:linkname cdemo127 C.demo127 +func cdemo127(a point127) point127 + +func demo127(a point127) point127 { + return a +} + +func init() { + a := point127{1, 2, 3} + assert("cdemo127\000", cdemo127(a) == a) + assert("demo127\000", demo127(a) == a) +} + +type point128 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int8 +} + +//go:linkname cdemo128 C.demo128 +func cdemo128(a point128) point128 + +func demo128(a point128) point128 { + return a +} + +func init() { + a := point128{1, 2, 3, 4} + assert("cdemo128\000", cdemo128(a) == a) + assert("demo128\000", demo128(a) == a) +} + +type point129 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo129 C.demo129 +func cdemo129(a point129) point129 + +func demo129(a point129) point129 { + return a +} + +func init() { + a := point129{1, 2, 3, 4, 5} + assert("cdemo129\000", cdemo129(a) == a) + assert("demo129\000", demo129(a) == a) +} + +type point130 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo130 C.demo130 +func cdemo130(a point130) point130 + +func demo130(a point130) point130 { + return a +} + +func init() { + a := point130{1, 2, 3, 4, 5} + assert("cdemo130\000", cdemo130(a) == a) + assert("demo130\000", demo130(a) == a) +} + +type point131 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo131 C.demo131 +func cdemo131(a point131) point131 + +func demo131(a point131) point131 { + return a +} + +func init() { + a := point131{1, 2, 3, 4, 5} + assert("cdemo131\000", cdemo131(a) == a) + assert("demo131\000", demo131(a) == a) +} + +type point132 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo132 C.demo132 +func cdemo132(a point132) point132 + +func demo132(a point132) point132 { + return a +} + +func init() { + a := point132{1, 2, 3, 4, 5} + assert("cdemo132\000", cdemo132(a) == a) + assert("demo132\000", demo132(a) == a) +} + +type point133 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int16 +} + +//go:linkname cdemo133 C.demo133 +func cdemo133(a point133) point133 + +func demo133(a point133) point133 { + return a +} + +func init() { + a := point133{1, 2, 3, 4} + assert("cdemo133\000", cdemo133(a) == a) + assert("demo133\000", demo133(a) == a) +} + +type point134 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo134 C.demo134 +func cdemo134(a point134) point134 + +func demo134(a point134) point134 { + return a +} + +func init() { + a := point134{1, 2, 3, 4, 5} + assert("cdemo134\000", cdemo134(a) == a) + assert("demo134\000", demo134(a) == a) +} + +type point135 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo135 C.demo135 +func cdemo135(a point135) point135 + +func demo135(a point135) point135 { + return a +} + +func init() { + a := point135{1, 2, 3, 4, 5} + assert("cdemo135\000", cdemo135(a) == a) + assert("demo135\000", demo135(a) == a) +} + +type point136 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo136 C.demo136 +func cdemo136(a point136) point136 + +func demo136(a point136) point136 { + return a +} + +func init() { + a := point136{1, 2, 3, 4, 5} + assert("cdemo136\000", cdemo136(a) == a) + assert("demo136\000", demo136(a) == a) +} + +type point137 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo137 C.demo137 +func cdemo137(a point137) point137 + +func demo137(a point137) point137 { + return a +} + +func init() { + a := point137{1, 2, 3, 4, 5} + assert("cdemo137\000", cdemo137(a) == a) + assert("demo137\000", demo137(a) == a) +} + +type point138 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int32 +} + +//go:linkname cdemo138 C.demo138 +func cdemo138(a point138) point138 + +func demo138(a point138) point138 { + return a +} + +func init() { + a := point138{1, 2, 3, 4} + assert("cdemo138\000", cdemo138(a) == a) + assert("demo138\000", demo138(a) == a) +} + +type point139 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo139 C.demo139 +func cdemo139(a point139) point139 + +func demo139(a point139) point139 { + return a +} + +func init() { + a := point139{1, 2, 3, 4, 5} + assert("cdemo139\000", cdemo139(a) == a) + assert("demo139\000", demo139(a) == a) +} + +type point140 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo140 C.demo140 +func cdemo140(a point140) point140 + +func demo140(a point140) point140 { + return a +} + +func init() { + a := point140{1, 2, 3, 4, 5} + assert("cdemo140\000", cdemo140(a) == a) + assert("demo140\000", demo140(a) == a) +} + +type point141 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo141 C.demo141 +func cdemo141(a point141) point141 + +func demo141(a point141) point141 { + return a +} + +func init() { + a := point141{1, 2, 3, 4, 5} + assert("cdemo141\000", cdemo141(a) == a) + assert("demo141\000", demo141(a) == a) +} + +type point142 struct { + x0 int8 + x1 int32 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo142 C.demo142 +func cdemo142(a point142) point142 + +func demo142(a point142) point142 { + return a +} + +func init() { + a := point142{1, 2, 3, 4, 5} + assert("cdemo142\000", cdemo142(a) == a) + assert("demo142\000", demo142(a) == a) +} + +type point143 struct { + x0 int8 + x1 int32 + x2 int8 + x3 float32 +} + +//go:linkname cdemo143 C.demo143 +func cdemo143(a point143) point143 + +func demo143(a point143) point143 { + return a +} + +func init() { + a := point143{1, 2, 3, 4} + assert("cdemo143\000", cdemo143(a) == a) + assert("demo143\000", demo143(a) == a) +} + +type point144 struct { + x0 int8 + x1 int32 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo144 C.demo144 +func cdemo144(a point144) point144 + +func demo144(a point144) point144 { + return a +} + +func init() { + a := point144{1, 2, 3, 4, 5} + assert("cdemo144\000", cdemo144(a) == a) + assert("demo144\000", demo144(a) == a) +} + +type point145 struct { + x0 int8 + x1 int32 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo145 C.demo145 +func cdemo145(a point145) point145 + +func demo145(a point145) point145 { + return a +} + +func init() { + a := point145{1, 2, 3, 4, 5} + assert("cdemo145\000", cdemo145(a) == a) + assert("demo145\000", demo145(a) == a) +} + +type point146 struct { + x0 int8 + x1 int32 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo146 C.demo146 +func cdemo146(a point146) point146 + +func demo146(a point146) point146 { + return a +} + +func init() { + a := point146{1, 2, 3, 4, 5} + assert("cdemo146\000", cdemo146(a) == a) + assert("demo146\000", demo146(a) == a) +} + +type point147 struct { + x0 int8 + x1 int32 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo147 C.demo147 +func cdemo147(a point147) point147 + +func demo147(a point147) point147 { + return a +} + +func init() { + a := point147{1, 2, 3, 4, 5} + assert("cdemo147\000", cdemo147(a) == a) + assert("demo147\000", demo147(a) == a) +} + +type point148 struct { + x0 int8 + x1 int32 + x2 int16 +} + +//go:linkname cdemo148 C.demo148 +func cdemo148(a point148) point148 + +func demo148(a point148) point148 { + return a +} + +func init() { + a := point148{1, 2, 3} + assert("cdemo148\000", cdemo148(a) == a) + assert("demo148\000", demo148(a) == a) +} + +type point149 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int8 +} + +//go:linkname cdemo149 C.demo149 +func cdemo149(a point149) point149 + +func demo149(a point149) point149 { + return a +} + +func init() { + a := point149{1, 2, 3, 4} + assert("cdemo149\000", cdemo149(a) == a) + assert("demo149\000", demo149(a) == a) +} + +type point150 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo150 C.demo150 +func cdemo150(a point150) point150 + +func demo150(a point150) point150 { + return a +} + +func init() { + a := point150{1, 2, 3, 4, 5} + assert("cdemo150\000", cdemo150(a) == a) + assert("demo150\000", demo150(a) == a) +} + +type point151 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo151 C.demo151 +func cdemo151(a point151) point151 + +func demo151(a point151) point151 { + return a +} + +func init() { + a := point151{1, 2, 3, 4, 5} + assert("cdemo151\000", cdemo151(a) == a) + assert("demo151\000", demo151(a) == a) +} + +type point152 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo152 C.demo152 +func cdemo152(a point152) point152 + +func demo152(a point152) point152 { + return a +} + +func init() { + a := point152{1, 2, 3, 4, 5} + assert("cdemo152\000", cdemo152(a) == a) + assert("demo152\000", demo152(a) == a) +} + +type point153 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo153 C.demo153 +func cdemo153(a point153) point153 + +func demo153(a point153) point153 { + return a +} + +func init() { + a := point153{1, 2, 3, 4, 5} + assert("cdemo153\000", cdemo153(a) == a) + assert("demo153\000", demo153(a) == a) +} + +type point154 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int16 +} + +//go:linkname cdemo154 C.demo154 +func cdemo154(a point154) point154 + +func demo154(a point154) point154 { + return a +} + +func init() { + a := point154{1, 2, 3, 4} + assert("cdemo154\000", cdemo154(a) == a) + assert("demo154\000", demo154(a) == a) +} + +type point155 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo155 C.demo155 +func cdemo155(a point155) point155 + +func demo155(a point155) point155 { + return a +} + +func init() { + a := point155{1, 2, 3, 4, 5} + assert("cdemo155\000", cdemo155(a) == a) + assert("demo155\000", demo155(a) == a) +} + +type point156 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo156 C.demo156 +func cdemo156(a point156) point156 + +func demo156(a point156) point156 { + return a +} + +func init() { + a := point156{1, 2, 3, 4, 5} + assert("cdemo156\000", cdemo156(a) == a) + assert("demo156\000", demo156(a) == a) +} + +type point157 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo157 C.demo157 +func cdemo157(a point157) point157 + +func demo157(a point157) point157 { + return a +} + +func init() { + a := point157{1, 2, 3, 4, 5} + assert("cdemo157\000", cdemo157(a) == a) + assert("demo157\000", demo157(a) == a) +} + +type point158 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo158 C.demo158 +func cdemo158(a point158) point158 + +func demo158(a point158) point158 { + return a +} + +func init() { + a := point158{1, 2, 3, 4, 5} + assert("cdemo158\000", cdemo158(a) == a) + assert("demo158\000", demo158(a) == a) +} + +type point159 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int32 +} + +//go:linkname cdemo159 C.demo159 +func cdemo159(a point159) point159 + +func demo159(a point159) point159 { + return a +} + +func init() { + a := point159{1, 2, 3, 4} + assert("cdemo159\000", cdemo159(a) == a) + assert("demo159\000", demo159(a) == a) +} + +type point160 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo160 C.demo160 +func cdemo160(a point160) point160 + +func demo160(a point160) point160 { + return a +} + +func init() { + a := point160{1, 2, 3, 4, 5} + assert("cdemo160\000", cdemo160(a) == a) + assert("demo160\000", demo160(a) == a) +} + +type point161 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo161 C.demo161 +func cdemo161(a point161) point161 + +func demo161(a point161) point161 { + return a +} + +func init() { + a := point161{1, 2, 3, 4, 5} + assert("cdemo161\000", cdemo161(a) == a) + assert("demo161\000", demo161(a) == a) +} + +type point162 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo162 C.demo162 +func cdemo162(a point162) point162 + +func demo162(a point162) point162 { + return a +} + +func init() { + a := point162{1, 2, 3, 4, 5} + assert("cdemo162\000", cdemo162(a) == a) + assert("demo162\000", demo162(a) == a) +} + +type point163 struct { + x0 int8 + x1 int32 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo163 C.demo163 +func cdemo163(a point163) point163 + +func demo163(a point163) point163 { + return a +} + +func init() { + a := point163{1, 2, 3, 4, 5} + assert("cdemo163\000", cdemo163(a) == a) + assert("demo163\000", demo163(a) == a) +} + +type point164 struct { + x0 int8 + x1 int32 + x2 int16 + x3 float32 +} + +//go:linkname cdemo164 C.demo164 +func cdemo164(a point164) point164 + +func demo164(a point164) point164 { + return a +} + +func init() { + a := point164{1, 2, 3, 4} + assert("cdemo164\000", cdemo164(a) == a) + assert("demo164\000", demo164(a) == a) +} + +type point165 struct { + x0 int8 + x1 int32 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo165 C.demo165 +func cdemo165(a point165) point165 + +func demo165(a point165) point165 { + return a +} + +func init() { + a := point165{1, 2, 3, 4, 5} + assert("cdemo165\000", cdemo165(a) == a) + assert("demo165\000", demo165(a) == a) +} + +type point166 struct { + x0 int8 + x1 int32 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo166 C.demo166 +func cdemo166(a point166) point166 + +func demo166(a point166) point166 { + return a +} + +func init() { + a := point166{1, 2, 3, 4, 5} + assert("cdemo166\000", cdemo166(a) == a) + assert("demo166\000", demo166(a) == a) +} + +type point167 struct { + x0 int8 + x1 int32 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo167 C.demo167 +func cdemo167(a point167) point167 + +func demo167(a point167) point167 { + return a +} + +func init() { + a := point167{1, 2, 3, 4, 5} + assert("cdemo167\000", cdemo167(a) == a) + assert("demo167\000", demo167(a) == a) +} + +type point168 struct { + x0 int8 + x1 int32 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo168 C.demo168 +func cdemo168(a point168) point168 + +func demo168(a point168) point168 { + return a +} + +func init() { + a := point168{1, 2, 3, 4, 5} + assert("cdemo168\000", cdemo168(a) == a) + assert("demo168\000", demo168(a) == a) +} + +type point169 struct { + x0 int8 + x1 int32 + x2 int32 +} + +//go:linkname cdemo169 C.demo169 +func cdemo169(a point169) point169 + +func demo169(a point169) point169 { + return a +} + +func init() { + a := point169{1, 2, 3} + assert("cdemo169\000", cdemo169(a) == a) + assert("demo169\000", demo169(a) == a) +} + +type point170 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int8 +} + +//go:linkname cdemo170 C.demo170 +func cdemo170(a point170) point170 + +func demo170(a point170) point170 { + return a +} + +func init() { + a := point170{1, 2, 3, 4} + assert("cdemo170\000", cdemo170(a) == a) + assert("demo170\000", demo170(a) == a) +} + +type point171 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo171 C.demo171 +func cdemo171(a point171) point171 + +func demo171(a point171) point171 { + return a +} + +func init() { + a := point171{1, 2, 3, 4, 5} + assert("cdemo171\000", cdemo171(a) == a) + assert("demo171\000", demo171(a) == a) +} + +type point172 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo172 C.demo172 +func cdemo172(a point172) point172 + +func demo172(a point172) point172 { + return a +} + +func init() { + a := point172{1, 2, 3, 4, 5} + assert("cdemo172\000", cdemo172(a) == a) + assert("demo172\000", demo172(a) == a) +} + +type point173 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo173 C.demo173 +func cdemo173(a point173) point173 + +func demo173(a point173) point173 { + return a +} + +func init() { + a := point173{1, 2, 3, 4, 5} + assert("cdemo173\000", cdemo173(a) == a) + assert("demo173\000", demo173(a) == a) +} + +type point174 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo174 C.demo174 +func cdemo174(a point174) point174 + +func demo174(a point174) point174 { + return a +} + +func init() { + a := point174{1, 2, 3, 4, 5} + assert("cdemo174\000", cdemo174(a) == a) + assert("demo174\000", demo174(a) == a) +} + +type point175 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int16 +} + +//go:linkname cdemo175 C.demo175 +func cdemo175(a point175) point175 + +func demo175(a point175) point175 { + return a +} + +func init() { + a := point175{1, 2, 3, 4} + assert("cdemo175\000", cdemo175(a) == a) + assert("demo175\000", demo175(a) == a) +} + +type point176 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo176 C.demo176 +func cdemo176(a point176) point176 + +func demo176(a point176) point176 { + return a +} + +func init() { + a := point176{1, 2, 3, 4, 5} + assert("cdemo176\000", cdemo176(a) == a) + assert("demo176\000", demo176(a) == a) +} + +type point177 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo177 C.demo177 +func cdemo177(a point177) point177 + +func demo177(a point177) point177 { + return a +} + +func init() { + a := point177{1, 2, 3, 4, 5} + assert("cdemo177\000", cdemo177(a) == a) + assert("demo177\000", demo177(a) == a) +} + +type point178 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo178 C.demo178 +func cdemo178(a point178) point178 + +func demo178(a point178) point178 { + return a +} + +func init() { + a := point178{1, 2, 3, 4, 5} + assert("cdemo178\000", cdemo178(a) == a) + assert("demo178\000", demo178(a) == a) +} + +type point179 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo179 C.demo179 +func cdemo179(a point179) point179 + +func demo179(a point179) point179 { + return a +} + +func init() { + a := point179{1, 2, 3, 4, 5} + assert("cdemo179\000", cdemo179(a) == a) + assert("demo179\000", demo179(a) == a) +} + +type point180 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int32 +} + +//go:linkname cdemo180 C.demo180 +func cdemo180(a point180) point180 + +func demo180(a point180) point180 { + return a +} + +func init() { + a := point180{1, 2, 3, 4} + assert("cdemo180\000", cdemo180(a) == a) + assert("demo180\000", demo180(a) == a) +} + +type point181 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo181 C.demo181 +func cdemo181(a point181) point181 + +func demo181(a point181) point181 { + return a +} + +func init() { + a := point181{1, 2, 3, 4, 5} + assert("cdemo181\000", cdemo181(a) == a) + assert("demo181\000", demo181(a) == a) +} + +type point182 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo182 C.demo182 +func cdemo182(a point182) point182 + +func demo182(a point182) point182 { + return a +} + +func init() { + a := point182{1, 2, 3, 4, 5} + assert("cdemo182\000", cdemo182(a) == a) + assert("demo182\000", demo182(a) == a) +} + +type point183 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo183 C.demo183 +func cdemo183(a point183) point183 + +func demo183(a point183) point183 { + return a +} + +func init() { + a := point183{1, 2, 3, 4, 5} + assert("cdemo183\000", cdemo183(a) == a) + assert("demo183\000", demo183(a) == a) +} + +type point184 struct { + x0 int8 + x1 int32 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo184 C.demo184 +func cdemo184(a point184) point184 + +func demo184(a point184) point184 { + return a +} + +func init() { + a := point184{1, 2, 3, 4, 5} + assert("cdemo184\000", cdemo184(a) == a) + assert("demo184\000", demo184(a) == a) +} + +type point185 struct { + x0 int8 + x1 int32 + x2 int32 + x3 float32 +} + +//go:linkname cdemo185 C.demo185 +func cdemo185(a point185) point185 + +func demo185(a point185) point185 { + return a +} + +func init() { + a := point185{1, 2, 3, 4} + assert("cdemo185\000", cdemo185(a) == a) + assert("demo185\000", demo185(a) == a) +} + +type point186 struct { + x0 int8 + x1 int32 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo186 C.demo186 +func cdemo186(a point186) point186 + +func demo186(a point186) point186 { + return a +} + +func init() { + a := point186{1, 2, 3, 4, 5} + assert("cdemo186\000", cdemo186(a) == a) + assert("demo186\000", demo186(a) == a) +} + +type point187 struct { + x0 int8 + x1 int32 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo187 C.demo187 +func cdemo187(a point187) point187 + +func demo187(a point187) point187 { + return a +} + +func init() { + a := point187{1, 2, 3, 4, 5} + assert("cdemo187\000", cdemo187(a) == a) + assert("demo187\000", demo187(a) == a) +} + +type point188 struct { + x0 int8 + x1 int32 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo188 C.demo188 +func cdemo188(a point188) point188 + +func demo188(a point188) point188 { + return a +} + +func init() { + a := point188{1, 2, 3, 4, 5} + assert("cdemo188\000", cdemo188(a) == a) + assert("demo188\000", demo188(a) == a) +} + +type point189 struct { + x0 int8 + x1 int32 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo189 C.demo189 +func cdemo189(a point189) point189 + +func demo189(a point189) point189 { + return a +} + +func init() { + a := point189{1, 2, 3, 4, 5} + assert("cdemo189\000", cdemo189(a) == a) + assert("demo189\000", demo189(a) == a) +} + +type point190 struct { + x0 int8 + x1 int32 + x2 float32 +} + +//go:linkname cdemo190 C.demo190 +func cdemo190(a point190) point190 + +func demo190(a point190) point190 { + return a +} + +func init() { + a := point190{1, 2, 3} + assert("cdemo190\000", cdemo190(a) == a) + assert("demo190\000", demo190(a) == a) +} + +type point191 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int8 +} + +//go:linkname cdemo191 C.demo191 +func cdemo191(a point191) point191 + +func demo191(a point191) point191 { + return a +} + +func init() { + a := point191{1, 2, 3, 4} + assert("cdemo191\000", cdemo191(a) == a) + assert("demo191\000", demo191(a) == a) +} + +type point192 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo192 C.demo192 +func cdemo192(a point192) point192 + +func demo192(a point192) point192 { + return a +} + +func init() { + a := point192{1, 2, 3, 4, 5} + assert("cdemo192\000", cdemo192(a) == a) + assert("demo192\000", demo192(a) == a) +} + +type point193 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo193 C.demo193 +func cdemo193(a point193) point193 + +func demo193(a point193) point193 { + return a +} + +func init() { + a := point193{1, 2, 3, 4, 5} + assert("cdemo193\000", cdemo193(a) == a) + assert("demo193\000", demo193(a) == a) +} + +type point194 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo194 C.demo194 +func cdemo194(a point194) point194 + +func demo194(a point194) point194 { + return a +} + +func init() { + a := point194{1, 2, 3, 4, 5} + assert("cdemo194\000", cdemo194(a) == a) + assert("demo194\000", demo194(a) == a) +} + +type point195 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo195 C.demo195 +func cdemo195(a point195) point195 + +func demo195(a point195) point195 { + return a +} + +func init() { + a := point195{1, 2, 3, 4, 5} + assert("cdemo195\000", cdemo195(a) == a) + assert("demo195\000", demo195(a) == a) +} + +type point196 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int16 +} + +//go:linkname cdemo196 C.demo196 +func cdemo196(a point196) point196 + +func demo196(a point196) point196 { + return a +} + +func init() { + a := point196{1, 2, 3, 4} + assert("cdemo196\000", cdemo196(a) == a) + assert("demo196\000", demo196(a) == a) +} + +type point197 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo197 C.demo197 +func cdemo197(a point197) point197 + +func demo197(a point197) point197 { + return a +} + +func init() { + a := point197{1, 2, 3, 4, 5} + assert("cdemo197\000", cdemo197(a) == a) + assert("demo197\000", demo197(a) == a) +} + +type point198 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo198 C.demo198 +func cdemo198(a point198) point198 + +func demo198(a point198) point198 { + return a +} + +func init() { + a := point198{1, 2, 3, 4, 5} + assert("cdemo198\000", cdemo198(a) == a) + assert("demo198\000", demo198(a) == a) +} + +type point199 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo199 C.demo199 +func cdemo199(a point199) point199 + +func demo199(a point199) point199 { + return a +} + +func init() { + a := point199{1, 2, 3, 4, 5} + assert("cdemo199\000", cdemo199(a) == a) + assert("demo199\000", demo199(a) == a) +} + +type point200 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo200 C.demo200 +func cdemo200(a point200) point200 + +func demo200(a point200) point200 { + return a +} + +func init() { + a := point200{1, 2, 3, 4, 5} + assert("cdemo200\000", cdemo200(a) == a) + assert("demo200\000", demo200(a) == a) +} + +type point201 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int32 +} + +//go:linkname cdemo201 C.demo201 +func cdemo201(a point201) point201 + +func demo201(a point201) point201 { + return a +} + +func init() { + a := point201{1, 2, 3, 4} + assert("cdemo201\000", cdemo201(a) == a) + assert("demo201\000", demo201(a) == a) +} + +type point202 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo202 C.demo202 +func cdemo202(a point202) point202 + +func demo202(a point202) point202 { + return a +} + +func init() { + a := point202{1, 2, 3, 4, 5} + assert("cdemo202\000", cdemo202(a) == a) + assert("demo202\000", demo202(a) == a) +} + +type point203 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo203 C.demo203 +func cdemo203(a point203) point203 + +func demo203(a point203) point203 { + return a +} + +func init() { + a := point203{1, 2, 3, 4, 5} + assert("cdemo203\000", cdemo203(a) == a) + assert("demo203\000", demo203(a) == a) +} + +type point204 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo204 C.demo204 +func cdemo204(a point204) point204 + +func demo204(a point204) point204 { + return a +} + +func init() { + a := point204{1, 2, 3, 4, 5} + assert("cdemo204\000", cdemo204(a) == a) + assert("demo204\000", demo204(a) == a) +} + +type point205 struct { + x0 int8 + x1 int32 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo205 C.demo205 +func cdemo205(a point205) point205 + +func demo205(a point205) point205 { + return a +} + +func init() { + a := point205{1, 2, 3, 4, 5} + assert("cdemo205\000", cdemo205(a) == a) + assert("demo205\000", demo205(a) == a) +} + +type point206 struct { + x0 int8 + x1 int32 + x2 float32 + x3 float32 +} + +//go:linkname cdemo206 C.demo206 +func cdemo206(a point206) point206 + +func demo206(a point206) point206 { + return a +} + +func init() { + a := point206{1, 2, 3, 4} + assert("cdemo206\000", cdemo206(a) == a) + assert("demo206\000", demo206(a) == a) +} + +type point207 struct { + x0 int8 + x1 int32 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo207 C.demo207 +func cdemo207(a point207) point207 + +func demo207(a point207) point207 { + return a +} + +func init() { + a := point207{1, 2, 3, 4, 5} + assert("cdemo207\000", cdemo207(a) == a) + assert("demo207\000", demo207(a) == a) +} + +type point208 struct { + x0 int8 + x1 int32 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo208 C.demo208 +func cdemo208(a point208) point208 + +func demo208(a point208) point208 { + return a +} + +func init() { + a := point208{1, 2, 3, 4, 5} + assert("cdemo208\000", cdemo208(a) == a) + assert("demo208\000", demo208(a) == a) +} + +type point209 struct { + x0 int8 + x1 int32 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo209 C.demo209 +func cdemo209(a point209) point209 + +func demo209(a point209) point209 { + return a +} + +func init() { + a := point209{1, 2, 3, 4, 5} + assert("cdemo209\000", cdemo209(a) == a) + assert("demo209\000", demo209(a) == a) +} + +type point210 struct { + x0 int8 + x1 int32 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo210 C.demo210 +func cdemo210(a point210) point210 + +func demo210(a point210) point210 { + return a +} + +func init() { + a := point210{1, 2, 3, 4, 5} + assert("cdemo210\000", cdemo210(a) == a) + assert("demo210\000", demo210(a) == a) +} + +type point211 struct { + x0 int8 + x1 float32 + x2 int8 +} + +//go:linkname cdemo211 C.demo211 +func cdemo211(a point211) point211 + +func demo211(a point211) point211 { + return a +} + +func init() { + a := point211{1, 2, 3} + assert("cdemo211\000", cdemo211(a) == a) + assert("demo211\000", demo211(a) == a) +} + +type point212 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int8 +} + +//go:linkname cdemo212 C.demo212 +func cdemo212(a point212) point212 + +func demo212(a point212) point212 { + return a +} + +func init() { + a := point212{1, 2, 3, 4} + assert("cdemo212\000", cdemo212(a) == a) + assert("demo212\000", demo212(a) == a) +} + +type point213 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo213 C.demo213 +func cdemo213(a point213) point213 + +func demo213(a point213) point213 { + return a +} + +func init() { + a := point213{1, 2, 3, 4, 5} + assert("cdemo213\000", cdemo213(a) == a) + assert("demo213\000", demo213(a) == a) +} + +type point214 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo214 C.demo214 +func cdemo214(a point214) point214 + +func demo214(a point214) point214 { + return a +} + +func init() { + a := point214{1, 2, 3, 4, 5} + assert("cdemo214\000", cdemo214(a) == a) + assert("demo214\000", demo214(a) == a) +} + +type point215 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo215 C.demo215 +func cdemo215(a point215) point215 + +func demo215(a point215) point215 { + return a +} + +func init() { + a := point215{1, 2, 3, 4, 5} + assert("cdemo215\000", cdemo215(a) == a) + assert("demo215\000", demo215(a) == a) +} + +type point216 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo216 C.demo216 +func cdemo216(a point216) point216 + +func demo216(a point216) point216 { + return a +} + +func init() { + a := point216{1, 2, 3, 4, 5} + assert("cdemo216\000", cdemo216(a) == a) + assert("demo216\000", demo216(a) == a) +} + +type point217 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int16 +} + +//go:linkname cdemo217 C.demo217 +func cdemo217(a point217) point217 + +func demo217(a point217) point217 { + return a +} + +func init() { + a := point217{1, 2, 3, 4} + assert("cdemo217\000", cdemo217(a) == a) + assert("demo217\000", demo217(a) == a) +} + +type point218 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo218 C.demo218 +func cdemo218(a point218) point218 + +func demo218(a point218) point218 { + return a +} + +func init() { + a := point218{1, 2, 3, 4, 5} + assert("cdemo218\000", cdemo218(a) == a) + assert("demo218\000", demo218(a) == a) +} + +type point219 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo219 C.demo219 +func cdemo219(a point219) point219 + +func demo219(a point219) point219 { + return a +} + +func init() { + a := point219{1, 2, 3, 4, 5} + assert("cdemo219\000", cdemo219(a) == a) + assert("demo219\000", demo219(a) == a) +} + +type point220 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo220 C.demo220 +func cdemo220(a point220) point220 + +func demo220(a point220) point220 { + return a +} + +func init() { + a := point220{1, 2, 3, 4, 5} + assert("cdemo220\000", cdemo220(a) == a) + assert("demo220\000", demo220(a) == a) +} + +type point221 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo221 C.demo221 +func cdemo221(a point221) point221 + +func demo221(a point221) point221 { + return a +} + +func init() { + a := point221{1, 2, 3, 4, 5} + assert("cdemo221\000", cdemo221(a) == a) + assert("demo221\000", demo221(a) == a) +} + +type point222 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int32 +} + +//go:linkname cdemo222 C.demo222 +func cdemo222(a point222) point222 + +func demo222(a point222) point222 { + return a +} + +func init() { + a := point222{1, 2, 3, 4} + assert("cdemo222\000", cdemo222(a) == a) + assert("demo222\000", demo222(a) == a) +} + +type point223 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo223 C.demo223 +func cdemo223(a point223) point223 + +func demo223(a point223) point223 { + return a +} + +func init() { + a := point223{1, 2, 3, 4, 5} + assert("cdemo223\000", cdemo223(a) == a) + assert("demo223\000", demo223(a) == a) +} + +type point224 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo224 C.demo224 +func cdemo224(a point224) point224 + +func demo224(a point224) point224 { + return a +} + +func init() { + a := point224{1, 2, 3, 4, 5} + assert("cdemo224\000", cdemo224(a) == a) + assert("demo224\000", demo224(a) == a) +} + +type point225 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo225 C.demo225 +func cdemo225(a point225) point225 + +func demo225(a point225) point225 { + return a +} + +func init() { + a := point225{1, 2, 3, 4, 5} + assert("cdemo225\000", cdemo225(a) == a) + assert("demo225\000", demo225(a) == a) +} + +type point226 struct { + x0 int8 + x1 float32 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo226 C.demo226 +func cdemo226(a point226) point226 + +func demo226(a point226) point226 { + return a +} + +func init() { + a := point226{1, 2, 3, 4, 5} + assert("cdemo226\000", cdemo226(a) == a) + assert("demo226\000", demo226(a) == a) +} + +type point227 struct { + x0 int8 + x1 float32 + x2 int8 + x3 float32 +} + +//go:linkname cdemo227 C.demo227 +func cdemo227(a point227) point227 + +func demo227(a point227) point227 { + return a +} + +func init() { + a := point227{1, 2, 3, 4} + assert("cdemo227\000", cdemo227(a) == a) + assert("demo227\000", demo227(a) == a) +} + +type point228 struct { + x0 int8 + x1 float32 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo228 C.demo228 +func cdemo228(a point228) point228 + +func demo228(a point228) point228 { + return a +} + +func init() { + a := point228{1, 2, 3, 4, 5} + assert("cdemo228\000", cdemo228(a) == a) + assert("demo228\000", demo228(a) == a) +} + +type point229 struct { + x0 int8 + x1 float32 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo229 C.demo229 +func cdemo229(a point229) point229 + +func demo229(a point229) point229 { + return a +} + +func init() { + a := point229{1, 2, 3, 4, 5} + assert("cdemo229\000", cdemo229(a) == a) + assert("demo229\000", demo229(a) == a) +} + +type point230 struct { + x0 int8 + x1 float32 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo230 C.demo230 +func cdemo230(a point230) point230 + +func demo230(a point230) point230 { + return a +} + +func init() { + a := point230{1, 2, 3, 4, 5} + assert("cdemo230\000", cdemo230(a) == a) + assert("demo230\000", demo230(a) == a) +} + +type point231 struct { + x0 int8 + x1 float32 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo231 C.demo231 +func cdemo231(a point231) point231 + +func demo231(a point231) point231 { + return a +} + +func init() { + a := point231{1, 2, 3, 4, 5} + assert("cdemo231\000", cdemo231(a) == a) + assert("demo231\000", demo231(a) == a) +} + +type point232 struct { + x0 int8 + x1 float32 + x2 int16 +} + +//go:linkname cdemo232 C.demo232 +func cdemo232(a point232) point232 + +func demo232(a point232) point232 { + return a +} + +func init() { + a := point232{1, 2, 3} + assert("cdemo232\000", cdemo232(a) == a) + assert("demo232\000", demo232(a) == a) +} + +type point233 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int8 +} + +//go:linkname cdemo233 C.demo233 +func cdemo233(a point233) point233 + +func demo233(a point233) point233 { + return a +} + +func init() { + a := point233{1, 2, 3, 4} + assert("cdemo233\000", cdemo233(a) == a) + assert("demo233\000", demo233(a) == a) +} + +type point234 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo234 C.demo234 +func cdemo234(a point234) point234 + +func demo234(a point234) point234 { + return a +} + +func init() { + a := point234{1, 2, 3, 4, 5} + assert("cdemo234\000", cdemo234(a) == a) + assert("demo234\000", demo234(a) == a) +} + +type point235 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo235 C.demo235 +func cdemo235(a point235) point235 + +func demo235(a point235) point235 { + return a +} + +func init() { + a := point235{1, 2, 3, 4, 5} + assert("cdemo235\000", cdemo235(a) == a) + assert("demo235\000", demo235(a) == a) +} + +type point236 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo236 C.demo236 +func cdemo236(a point236) point236 + +func demo236(a point236) point236 { + return a +} + +func init() { + a := point236{1, 2, 3, 4, 5} + assert("cdemo236\000", cdemo236(a) == a) + assert("demo236\000", demo236(a) == a) +} + +type point237 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo237 C.demo237 +func cdemo237(a point237) point237 + +func demo237(a point237) point237 { + return a +} + +func init() { + a := point237{1, 2, 3, 4, 5} + assert("cdemo237\000", cdemo237(a) == a) + assert("demo237\000", demo237(a) == a) +} + +type point238 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int16 +} + +//go:linkname cdemo238 C.demo238 +func cdemo238(a point238) point238 + +func demo238(a point238) point238 { + return a +} + +func init() { + a := point238{1, 2, 3, 4} + assert("cdemo238\000", cdemo238(a) == a) + assert("demo238\000", demo238(a) == a) +} + +type point239 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo239 C.demo239 +func cdemo239(a point239) point239 + +func demo239(a point239) point239 { + return a +} + +func init() { + a := point239{1, 2, 3, 4, 5} + assert("cdemo239\000", cdemo239(a) == a) + assert("demo239\000", demo239(a) == a) +} + +type point240 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo240 C.demo240 +func cdemo240(a point240) point240 + +func demo240(a point240) point240 { + return a +} + +func init() { + a := point240{1, 2, 3, 4, 5} + assert("cdemo240\000", cdemo240(a) == a) + assert("demo240\000", demo240(a) == a) +} + +type point241 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo241 C.demo241 +func cdemo241(a point241) point241 + +func demo241(a point241) point241 { + return a +} + +func init() { + a := point241{1, 2, 3, 4, 5} + assert("cdemo241\000", cdemo241(a) == a) + assert("demo241\000", demo241(a) == a) +} + +type point242 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo242 C.demo242 +func cdemo242(a point242) point242 + +func demo242(a point242) point242 { + return a +} + +func init() { + a := point242{1, 2, 3, 4, 5} + assert("cdemo242\000", cdemo242(a) == a) + assert("demo242\000", demo242(a) == a) +} + +type point243 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int32 +} + +//go:linkname cdemo243 C.demo243 +func cdemo243(a point243) point243 + +func demo243(a point243) point243 { + return a +} + +func init() { + a := point243{1, 2, 3, 4} + assert("cdemo243\000", cdemo243(a) == a) + assert("demo243\000", demo243(a) == a) +} + +type point244 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo244 C.demo244 +func cdemo244(a point244) point244 + +func demo244(a point244) point244 { + return a +} + +func init() { + a := point244{1, 2, 3, 4, 5} + assert("cdemo244\000", cdemo244(a) == a) + assert("demo244\000", demo244(a) == a) +} + +type point245 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo245 C.demo245 +func cdemo245(a point245) point245 + +func demo245(a point245) point245 { + return a +} + +func init() { + a := point245{1, 2, 3, 4, 5} + assert("cdemo245\000", cdemo245(a) == a) + assert("demo245\000", demo245(a) == a) +} + +type point246 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo246 C.demo246 +func cdemo246(a point246) point246 + +func demo246(a point246) point246 { + return a +} + +func init() { + a := point246{1, 2, 3, 4, 5} + assert("cdemo246\000", cdemo246(a) == a) + assert("demo246\000", demo246(a) == a) +} + +type point247 struct { + x0 int8 + x1 float32 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo247 C.demo247 +func cdemo247(a point247) point247 + +func demo247(a point247) point247 { + return a +} + +func init() { + a := point247{1, 2, 3, 4, 5} + assert("cdemo247\000", cdemo247(a) == a) + assert("demo247\000", demo247(a) == a) +} + +type point248 struct { + x0 int8 + x1 float32 + x2 int16 + x3 float32 +} + +//go:linkname cdemo248 C.demo248 +func cdemo248(a point248) point248 + +func demo248(a point248) point248 { + return a +} + +func init() { + a := point248{1, 2, 3, 4} + assert("cdemo248\000", cdemo248(a) == a) + assert("demo248\000", demo248(a) == a) +} + +type point249 struct { + x0 int8 + x1 float32 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo249 C.demo249 +func cdemo249(a point249) point249 + +func demo249(a point249) point249 { + return a +} + +func init() { + a := point249{1, 2, 3, 4, 5} + assert("cdemo249\000", cdemo249(a) == a) + assert("demo249\000", demo249(a) == a) +} + +type point250 struct { + x0 int8 + x1 float32 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo250 C.demo250 +func cdemo250(a point250) point250 + +func demo250(a point250) point250 { + return a +} + +func init() { + a := point250{1, 2, 3, 4, 5} + assert("cdemo250\000", cdemo250(a) == a) + assert("demo250\000", demo250(a) == a) +} + +type point251 struct { + x0 int8 + x1 float32 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo251 C.demo251 +func cdemo251(a point251) point251 + +func demo251(a point251) point251 { + return a +} + +func init() { + a := point251{1, 2, 3, 4, 5} + assert("cdemo251\000", cdemo251(a) == a) + assert("demo251\000", demo251(a) == a) +} + +type point252 struct { + x0 int8 + x1 float32 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo252 C.demo252 +func cdemo252(a point252) point252 + +func demo252(a point252) point252 { + return a +} + +func init() { + a := point252{1, 2, 3, 4, 5} + assert("cdemo252\000", cdemo252(a) == a) + assert("demo252\000", demo252(a) == a) +} + +type point253 struct { + x0 int8 + x1 float32 + x2 int32 +} + +//go:linkname cdemo253 C.demo253 +func cdemo253(a point253) point253 + +func demo253(a point253) point253 { + return a +} + +func init() { + a := point253{1, 2, 3} + assert("cdemo253\000", cdemo253(a) == a) + assert("demo253\000", demo253(a) == a) +} + +type point254 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int8 +} + +//go:linkname cdemo254 C.demo254 +func cdemo254(a point254) point254 + +func demo254(a point254) point254 { + return a +} + +func init() { + a := point254{1, 2, 3, 4} + assert("cdemo254\000", cdemo254(a) == a) + assert("demo254\000", demo254(a) == a) +} + +type point255 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo255 C.demo255 +func cdemo255(a point255) point255 + +func demo255(a point255) point255 { + return a +} + +func init() { + a := point255{1, 2, 3, 4, 5} + assert("cdemo255\000", cdemo255(a) == a) + assert("demo255\000", demo255(a) == a) +} + +type point256 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo256 C.demo256 +func cdemo256(a point256) point256 + +func demo256(a point256) point256 { + return a +} + +func init() { + a := point256{1, 2, 3, 4, 5} + assert("cdemo256\000", cdemo256(a) == a) + assert("demo256\000", demo256(a) == a) +} + +type point257 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo257 C.demo257 +func cdemo257(a point257) point257 + +func demo257(a point257) point257 { + return a +} + +func init() { + a := point257{1, 2, 3, 4, 5} + assert("cdemo257\000", cdemo257(a) == a) + assert("demo257\000", demo257(a) == a) +} + +type point258 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo258 C.demo258 +func cdemo258(a point258) point258 + +func demo258(a point258) point258 { + return a +} + +func init() { + a := point258{1, 2, 3, 4, 5} + assert("cdemo258\000", cdemo258(a) == a) + assert("demo258\000", demo258(a) == a) +} + +type point259 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int16 +} + +//go:linkname cdemo259 C.demo259 +func cdemo259(a point259) point259 + +func demo259(a point259) point259 { + return a +} + +func init() { + a := point259{1, 2, 3, 4} + assert("cdemo259\000", cdemo259(a) == a) + assert("demo259\000", demo259(a) == a) +} + +type point260 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo260 C.demo260 +func cdemo260(a point260) point260 + +func demo260(a point260) point260 { + return a +} + +func init() { + a := point260{1, 2, 3, 4, 5} + assert("cdemo260\000", cdemo260(a) == a) + assert("demo260\000", demo260(a) == a) +} + +type point261 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo261 C.demo261 +func cdemo261(a point261) point261 + +func demo261(a point261) point261 { + return a +} + +func init() { + a := point261{1, 2, 3, 4, 5} + assert("cdemo261\000", cdemo261(a) == a) + assert("demo261\000", demo261(a) == a) +} + +type point262 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo262 C.demo262 +func cdemo262(a point262) point262 + +func demo262(a point262) point262 { + return a +} + +func init() { + a := point262{1, 2, 3, 4, 5} + assert("cdemo262\000", cdemo262(a) == a) + assert("demo262\000", demo262(a) == a) +} + +type point263 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo263 C.demo263 +func cdemo263(a point263) point263 + +func demo263(a point263) point263 { + return a +} + +func init() { + a := point263{1, 2, 3, 4, 5} + assert("cdemo263\000", cdemo263(a) == a) + assert("demo263\000", demo263(a) == a) +} + +type point264 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int32 +} + +//go:linkname cdemo264 C.demo264 +func cdemo264(a point264) point264 + +func demo264(a point264) point264 { + return a +} + +func init() { + a := point264{1, 2, 3, 4} + assert("cdemo264\000", cdemo264(a) == a) + assert("demo264\000", demo264(a) == a) +} + +type point265 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo265 C.demo265 +func cdemo265(a point265) point265 + +func demo265(a point265) point265 { + return a +} + +func init() { + a := point265{1, 2, 3, 4, 5} + assert("cdemo265\000", cdemo265(a) == a) + assert("demo265\000", demo265(a) == a) +} + +type point266 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo266 C.demo266 +func cdemo266(a point266) point266 + +func demo266(a point266) point266 { + return a +} + +func init() { + a := point266{1, 2, 3, 4, 5} + assert("cdemo266\000", cdemo266(a) == a) + assert("demo266\000", demo266(a) == a) +} + +type point267 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo267 C.demo267 +func cdemo267(a point267) point267 + +func demo267(a point267) point267 { + return a +} + +func init() { + a := point267{1, 2, 3, 4, 5} + assert("cdemo267\000", cdemo267(a) == a) + assert("demo267\000", demo267(a) == a) +} + +type point268 struct { + x0 int8 + x1 float32 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo268 C.demo268 +func cdemo268(a point268) point268 + +func demo268(a point268) point268 { + return a +} + +func init() { + a := point268{1, 2, 3, 4, 5} + assert("cdemo268\000", cdemo268(a) == a) + assert("demo268\000", demo268(a) == a) +} + +type point269 struct { + x0 int8 + x1 float32 + x2 int32 + x3 float32 +} + +//go:linkname cdemo269 C.demo269 +func cdemo269(a point269) point269 + +func demo269(a point269) point269 { + return a +} + +func init() { + a := point269{1, 2, 3, 4} + assert("cdemo269\000", cdemo269(a) == a) + assert("demo269\000", demo269(a) == a) +} + +type point270 struct { + x0 int8 + x1 float32 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo270 C.demo270 +func cdemo270(a point270) point270 + +func demo270(a point270) point270 { + return a +} + +func init() { + a := point270{1, 2, 3, 4, 5} + assert("cdemo270\000", cdemo270(a) == a) + assert("demo270\000", demo270(a) == a) +} + +type point271 struct { + x0 int8 + x1 float32 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo271 C.demo271 +func cdemo271(a point271) point271 + +func demo271(a point271) point271 { + return a +} + +func init() { + a := point271{1, 2, 3, 4, 5} + assert("cdemo271\000", cdemo271(a) == a) + assert("demo271\000", demo271(a) == a) +} + +type point272 struct { + x0 int8 + x1 float32 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo272 C.demo272 +func cdemo272(a point272) point272 + +func demo272(a point272) point272 { + return a +} + +func init() { + a := point272{1, 2, 3, 4, 5} + assert("cdemo272\000", cdemo272(a) == a) + assert("demo272\000", demo272(a) == a) +} + +type point273 struct { + x0 int8 + x1 float32 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo273 C.demo273 +func cdemo273(a point273) point273 + +func demo273(a point273) point273 { + return a +} + +func init() { + a := point273{1, 2, 3, 4, 5} + assert("cdemo273\000", cdemo273(a) == a) + assert("demo273\000", demo273(a) == a) +} + +type point274 struct { + x0 int8 + x1 float32 + x2 float32 +} + +//go:linkname cdemo274 C.demo274 +func cdemo274(a point274) point274 + +func demo274(a point274) point274 { + return a +} + +func init() { + a := point274{1, 2, 3} + assert("cdemo274\000", cdemo274(a) == a) + assert("demo274\000", demo274(a) == a) +} + +type point275 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int8 +} + +//go:linkname cdemo275 C.demo275 +func cdemo275(a point275) point275 + +func demo275(a point275) point275 { + return a +} + +func init() { + a := point275{1, 2, 3, 4} + assert("cdemo275\000", cdemo275(a) == a) + assert("demo275\000", demo275(a) == a) +} + +type point276 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo276 C.demo276 +func cdemo276(a point276) point276 + +func demo276(a point276) point276 { + return a +} + +func init() { + a := point276{1, 2, 3, 4, 5} + assert("cdemo276\000", cdemo276(a) == a) + assert("demo276\000", demo276(a) == a) +} + +type point277 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo277 C.demo277 +func cdemo277(a point277) point277 + +func demo277(a point277) point277 { + return a +} + +func init() { + a := point277{1, 2, 3, 4, 5} + assert("cdemo277\000", cdemo277(a) == a) + assert("demo277\000", demo277(a) == a) +} + +type point278 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo278 C.demo278 +func cdemo278(a point278) point278 + +func demo278(a point278) point278 { + return a +} + +func init() { + a := point278{1, 2, 3, 4, 5} + assert("cdemo278\000", cdemo278(a) == a) + assert("demo278\000", demo278(a) == a) +} + +type point279 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo279 C.demo279 +func cdemo279(a point279) point279 + +func demo279(a point279) point279 { + return a +} + +func init() { + a := point279{1, 2, 3, 4, 5} + assert("cdemo279\000", cdemo279(a) == a) + assert("demo279\000", demo279(a) == a) +} + +type point280 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int16 +} + +//go:linkname cdemo280 C.demo280 +func cdemo280(a point280) point280 + +func demo280(a point280) point280 { + return a +} + +func init() { + a := point280{1, 2, 3, 4} + assert("cdemo280\000", cdemo280(a) == a) + assert("demo280\000", demo280(a) == a) +} + +type point281 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo281 C.demo281 +func cdemo281(a point281) point281 + +func demo281(a point281) point281 { + return a +} + +func init() { + a := point281{1, 2, 3, 4, 5} + assert("cdemo281\000", cdemo281(a) == a) + assert("demo281\000", demo281(a) == a) +} + +type point282 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo282 C.demo282 +func cdemo282(a point282) point282 + +func demo282(a point282) point282 { + return a +} + +func init() { + a := point282{1, 2, 3, 4, 5} + assert("cdemo282\000", cdemo282(a) == a) + assert("demo282\000", demo282(a) == a) +} + +type point283 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo283 C.demo283 +func cdemo283(a point283) point283 + +func demo283(a point283) point283 { + return a +} + +func init() { + a := point283{1, 2, 3, 4, 5} + assert("cdemo283\000", cdemo283(a) == a) + assert("demo283\000", demo283(a) == a) +} + +type point284 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo284 C.demo284 +func cdemo284(a point284) point284 + +func demo284(a point284) point284 { + return a +} + +func init() { + a := point284{1, 2, 3, 4, 5} + assert("cdemo284\000", cdemo284(a) == a) + assert("demo284\000", demo284(a) == a) +} + +type point285 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int32 +} + +//go:linkname cdemo285 C.demo285 +func cdemo285(a point285) point285 + +func demo285(a point285) point285 { + return a +} + +func init() { + a := point285{1, 2, 3, 4} + assert("cdemo285\000", cdemo285(a) == a) + assert("demo285\000", demo285(a) == a) +} + +type point286 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo286 C.demo286 +func cdemo286(a point286) point286 + +func demo286(a point286) point286 { + return a +} + +func init() { + a := point286{1, 2, 3, 4, 5} + assert("cdemo286\000", cdemo286(a) == a) + assert("demo286\000", demo286(a) == a) +} + +type point287 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo287 C.demo287 +func cdemo287(a point287) point287 + +func demo287(a point287) point287 { + return a +} + +func init() { + a := point287{1, 2, 3, 4, 5} + assert("cdemo287\000", cdemo287(a) == a) + assert("demo287\000", demo287(a) == a) +} + +type point288 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo288 C.demo288 +func cdemo288(a point288) point288 + +func demo288(a point288) point288 { + return a +} + +func init() { + a := point288{1, 2, 3, 4, 5} + assert("cdemo288\000", cdemo288(a) == a) + assert("demo288\000", demo288(a) == a) +} + +type point289 struct { + x0 int8 + x1 float32 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo289 C.demo289 +func cdemo289(a point289) point289 + +func demo289(a point289) point289 { + return a +} + +func init() { + a := point289{1, 2, 3, 4, 5} + assert("cdemo289\000", cdemo289(a) == a) + assert("demo289\000", demo289(a) == a) +} + +type point290 struct { + x0 int8 + x1 float32 + x2 float32 + x3 float32 +} + +//go:linkname cdemo290 C.demo290 +func cdemo290(a point290) point290 + +func demo290(a point290) point290 { + return a +} + +func init() { + a := point290{1, 2, 3, 4} + assert("cdemo290\000", cdemo290(a) == a) + assert("demo290\000", demo290(a) == a) +} + +type point291 struct { + x0 int8 + x1 float32 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo291 C.demo291 +func cdemo291(a point291) point291 + +func demo291(a point291) point291 { + return a +} + +func init() { + a := point291{1, 2, 3, 4, 5} + assert("cdemo291\000", cdemo291(a) == a) + assert("demo291\000", demo291(a) == a) +} + +type point292 struct { + x0 int8 + x1 float32 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo292 C.demo292 +func cdemo292(a point292) point292 + +func demo292(a point292) point292 { + return a +} + +func init() { + a := point292{1, 2, 3, 4, 5} + assert("cdemo292\000", cdemo292(a) == a) + assert("demo292\000", demo292(a) == a) +} + +type point293 struct { + x0 int8 + x1 float32 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo293 C.demo293 +func cdemo293(a point293) point293 + +func demo293(a point293) point293 { + return a +} + +func init() { + a := point293{1, 2, 3, 4, 5} + assert("cdemo293\000", cdemo293(a) == a) + assert("demo293\000", demo293(a) == a) +} + +type point294 struct { + x0 int8 + x1 float32 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo294 C.demo294 +func cdemo294(a point294) point294 + +func demo294(a point294) point294 { + return a +} + +func init() { + a := point294{1, 2, 3, 4, 5} + assert("cdemo294\000", cdemo294(a) == a) + assert("demo294\000", demo294(a) == a) +} + +type point295 struct { + x0 int16 + x1 int8 + x2 int8 +} + +//go:linkname cdemo295 C.demo295 +func cdemo295(a point295) point295 + +func demo295(a point295) point295 { + return a +} + +func init() { + a := point295{1, 2, 3} + assert("cdemo295\000", cdemo295(a) == a) + assert("demo295\000", demo295(a) == a) +} + +type point296 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int8 +} + +//go:linkname cdemo296 C.demo296 +func cdemo296(a point296) point296 + +func demo296(a point296) point296 { + return a +} + +func init() { + a := point296{1, 2, 3, 4} + assert("cdemo296\000", cdemo296(a) == a) + assert("demo296\000", demo296(a) == a) +} + +type point297 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo297 C.demo297 +func cdemo297(a point297) point297 + +func demo297(a point297) point297 { + return a +} + +func init() { + a := point297{1, 2, 3, 4, 5} + assert("cdemo297\000", cdemo297(a) == a) + assert("demo297\000", demo297(a) == a) +} + +type point298 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo298 C.demo298 +func cdemo298(a point298) point298 + +func demo298(a point298) point298 { + return a +} + +func init() { + a := point298{1, 2, 3, 4, 5} + assert("cdemo298\000", cdemo298(a) == a) + assert("demo298\000", demo298(a) == a) +} + +type point299 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo299 C.demo299 +func cdemo299(a point299) point299 + +func demo299(a point299) point299 { + return a +} + +func init() { + a := point299{1, 2, 3, 4, 5} + assert("cdemo299\000", cdemo299(a) == a) + assert("demo299\000", demo299(a) == a) +} + +type point300 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo300 C.demo300 +func cdemo300(a point300) point300 + +func demo300(a point300) point300 { + return a +} + +func init() { + a := point300{1, 2, 3, 4, 5} + assert("cdemo300\000", cdemo300(a) == a) + assert("demo300\000", demo300(a) == a) +} + +type point301 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int16 +} + +//go:linkname cdemo301 C.demo301 +func cdemo301(a point301) point301 + +func demo301(a point301) point301 { + return a +} + +func init() { + a := point301{1, 2, 3, 4} + assert("cdemo301\000", cdemo301(a) == a) + assert("demo301\000", demo301(a) == a) +} + +type point302 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo302 C.demo302 +func cdemo302(a point302) point302 + +func demo302(a point302) point302 { + return a +} + +func init() { + a := point302{1, 2, 3, 4, 5} + assert("cdemo302\000", cdemo302(a) == a) + assert("demo302\000", demo302(a) == a) +} + +type point303 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo303 C.demo303 +func cdemo303(a point303) point303 + +func demo303(a point303) point303 { + return a +} + +func init() { + a := point303{1, 2, 3, 4, 5} + assert("cdemo303\000", cdemo303(a) == a) + assert("demo303\000", demo303(a) == a) +} + +type point304 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo304 C.demo304 +func cdemo304(a point304) point304 + +func demo304(a point304) point304 { + return a +} + +func init() { + a := point304{1, 2, 3, 4, 5} + assert("cdemo304\000", cdemo304(a) == a) + assert("demo304\000", demo304(a) == a) +} + +type point305 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo305 C.demo305 +func cdemo305(a point305) point305 + +func demo305(a point305) point305 { + return a +} + +func init() { + a := point305{1, 2, 3, 4, 5} + assert("cdemo305\000", cdemo305(a) == a) + assert("demo305\000", demo305(a) == a) +} + +type point306 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int32 +} + +//go:linkname cdemo306 C.demo306 +func cdemo306(a point306) point306 + +func demo306(a point306) point306 { + return a +} + +func init() { + a := point306{1, 2, 3, 4} + assert("cdemo306\000", cdemo306(a) == a) + assert("demo306\000", demo306(a) == a) +} + +type point307 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo307 C.demo307 +func cdemo307(a point307) point307 + +func demo307(a point307) point307 { + return a +} + +func init() { + a := point307{1, 2, 3, 4, 5} + assert("cdemo307\000", cdemo307(a) == a) + assert("demo307\000", demo307(a) == a) +} + +type point308 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo308 C.demo308 +func cdemo308(a point308) point308 + +func demo308(a point308) point308 { + return a +} + +func init() { + a := point308{1, 2, 3, 4, 5} + assert("cdemo308\000", cdemo308(a) == a) + assert("demo308\000", demo308(a) == a) +} + +type point309 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo309 C.demo309 +func cdemo309(a point309) point309 + +func demo309(a point309) point309 { + return a +} + +func init() { + a := point309{1, 2, 3, 4, 5} + assert("cdemo309\000", cdemo309(a) == a) + assert("demo309\000", demo309(a) == a) +} + +type point310 struct { + x0 int16 + x1 int8 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo310 C.demo310 +func cdemo310(a point310) point310 + +func demo310(a point310) point310 { + return a +} + +func init() { + a := point310{1, 2, 3, 4, 5} + assert("cdemo310\000", cdemo310(a) == a) + assert("demo310\000", demo310(a) == a) +} + +type point311 struct { + x0 int16 + x1 int8 + x2 int8 + x3 float32 +} + +//go:linkname cdemo311 C.demo311 +func cdemo311(a point311) point311 + +func demo311(a point311) point311 { + return a +} + +func init() { + a := point311{1, 2, 3, 4} + assert("cdemo311\000", cdemo311(a) == a) + assert("demo311\000", demo311(a) == a) +} + +type point312 struct { + x0 int16 + x1 int8 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo312 C.demo312 +func cdemo312(a point312) point312 + +func demo312(a point312) point312 { + return a +} + +func init() { + a := point312{1, 2, 3, 4, 5} + assert("cdemo312\000", cdemo312(a) == a) + assert("demo312\000", demo312(a) == a) +} + +type point313 struct { + x0 int16 + x1 int8 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo313 C.demo313 +func cdemo313(a point313) point313 + +func demo313(a point313) point313 { + return a +} + +func init() { + a := point313{1, 2, 3, 4, 5} + assert("cdemo313\000", cdemo313(a) == a) + assert("demo313\000", demo313(a) == a) +} + +type point314 struct { + x0 int16 + x1 int8 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo314 C.demo314 +func cdemo314(a point314) point314 + +func demo314(a point314) point314 { + return a +} + +func init() { + a := point314{1, 2, 3, 4, 5} + assert("cdemo314\000", cdemo314(a) == a) + assert("demo314\000", demo314(a) == a) +} + +type point315 struct { + x0 int16 + x1 int8 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo315 C.demo315 +func cdemo315(a point315) point315 + +func demo315(a point315) point315 { + return a +} + +func init() { + a := point315{1, 2, 3, 4, 5} + assert("cdemo315\000", cdemo315(a) == a) + assert("demo315\000", demo315(a) == a) +} + +type point316 struct { + x0 int16 + x1 int8 + x2 int16 +} + +//go:linkname cdemo316 C.demo316 +func cdemo316(a point316) point316 + +func demo316(a point316) point316 { + return a +} + +func init() { + a := point316{1, 2, 3} + assert("cdemo316\000", cdemo316(a) == a) + assert("demo316\000", demo316(a) == a) +} + +type point317 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int8 +} + +//go:linkname cdemo317 C.demo317 +func cdemo317(a point317) point317 + +func demo317(a point317) point317 { + return a +} + +func init() { + a := point317{1, 2, 3, 4} + assert("cdemo317\000", cdemo317(a) == a) + assert("demo317\000", demo317(a) == a) +} + +type point318 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo318 C.demo318 +func cdemo318(a point318) point318 + +func demo318(a point318) point318 { + return a +} + +func init() { + a := point318{1, 2, 3, 4, 5} + assert("cdemo318\000", cdemo318(a) == a) + assert("demo318\000", demo318(a) == a) +} + +type point319 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo319 C.demo319 +func cdemo319(a point319) point319 + +func demo319(a point319) point319 { + return a +} + +func init() { + a := point319{1, 2, 3, 4, 5} + assert("cdemo319\000", cdemo319(a) == a) + assert("demo319\000", demo319(a) == a) +} + +type point320 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo320 C.demo320 +func cdemo320(a point320) point320 + +func demo320(a point320) point320 { + return a +} + +func init() { + a := point320{1, 2, 3, 4, 5} + assert("cdemo320\000", cdemo320(a) == a) + assert("demo320\000", demo320(a) == a) +} + +type point321 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo321 C.demo321 +func cdemo321(a point321) point321 + +func demo321(a point321) point321 { + return a +} + +func init() { + a := point321{1, 2, 3, 4, 5} + assert("cdemo321\000", cdemo321(a) == a) + assert("demo321\000", demo321(a) == a) +} + +type point322 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int16 +} + +//go:linkname cdemo322 C.demo322 +func cdemo322(a point322) point322 + +func demo322(a point322) point322 { + return a +} + +func init() { + a := point322{1, 2, 3, 4} + assert("cdemo322\000", cdemo322(a) == a) + assert("demo322\000", demo322(a) == a) +} + +type point323 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo323 C.demo323 +func cdemo323(a point323) point323 + +func demo323(a point323) point323 { + return a +} + +func init() { + a := point323{1, 2, 3, 4, 5} + assert("cdemo323\000", cdemo323(a) == a) + assert("demo323\000", demo323(a) == a) +} + +type point324 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo324 C.demo324 +func cdemo324(a point324) point324 + +func demo324(a point324) point324 { + return a +} + +func init() { + a := point324{1, 2, 3, 4, 5} + assert("cdemo324\000", cdemo324(a) == a) + assert("demo324\000", demo324(a) == a) +} + +type point325 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo325 C.demo325 +func cdemo325(a point325) point325 + +func demo325(a point325) point325 { + return a +} + +func init() { + a := point325{1, 2, 3, 4, 5} + assert("cdemo325\000", cdemo325(a) == a) + assert("demo325\000", demo325(a) == a) +} + +type point326 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo326 C.demo326 +func cdemo326(a point326) point326 + +func demo326(a point326) point326 { + return a +} + +func init() { + a := point326{1, 2, 3, 4, 5} + assert("cdemo326\000", cdemo326(a) == a) + assert("demo326\000", demo326(a) == a) +} + +type point327 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int32 +} + +//go:linkname cdemo327 C.demo327 +func cdemo327(a point327) point327 + +func demo327(a point327) point327 { + return a +} + +func init() { + a := point327{1, 2, 3, 4} + assert("cdemo327\000", cdemo327(a) == a) + assert("demo327\000", demo327(a) == a) +} + +type point328 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo328 C.demo328 +func cdemo328(a point328) point328 + +func demo328(a point328) point328 { + return a +} + +func init() { + a := point328{1, 2, 3, 4, 5} + assert("cdemo328\000", cdemo328(a) == a) + assert("demo328\000", demo328(a) == a) +} + +type point329 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo329 C.demo329 +func cdemo329(a point329) point329 + +func demo329(a point329) point329 { + return a +} + +func init() { + a := point329{1, 2, 3, 4, 5} + assert("cdemo329\000", cdemo329(a) == a) + assert("demo329\000", demo329(a) == a) +} + +type point330 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo330 C.demo330 +func cdemo330(a point330) point330 + +func demo330(a point330) point330 { + return a +} + +func init() { + a := point330{1, 2, 3, 4, 5} + assert("cdemo330\000", cdemo330(a) == a) + assert("demo330\000", demo330(a) == a) +} + +type point331 struct { + x0 int16 + x1 int8 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo331 C.demo331 +func cdemo331(a point331) point331 + +func demo331(a point331) point331 { + return a +} + +func init() { + a := point331{1, 2, 3, 4, 5} + assert("cdemo331\000", cdemo331(a) == a) + assert("demo331\000", demo331(a) == a) +} + +type point332 struct { + x0 int16 + x1 int8 + x2 int16 + x3 float32 +} + +//go:linkname cdemo332 C.demo332 +func cdemo332(a point332) point332 + +func demo332(a point332) point332 { + return a +} + +func init() { + a := point332{1, 2, 3, 4} + assert("cdemo332\000", cdemo332(a) == a) + assert("demo332\000", demo332(a) == a) +} + +type point333 struct { + x0 int16 + x1 int8 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo333 C.demo333 +func cdemo333(a point333) point333 + +func demo333(a point333) point333 { + return a +} + +func init() { + a := point333{1, 2, 3, 4, 5} + assert("cdemo333\000", cdemo333(a) == a) + assert("demo333\000", demo333(a) == a) +} + +type point334 struct { + x0 int16 + x1 int8 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo334 C.demo334 +func cdemo334(a point334) point334 + +func demo334(a point334) point334 { + return a +} + +func init() { + a := point334{1, 2, 3, 4, 5} + assert("cdemo334\000", cdemo334(a) == a) + assert("demo334\000", demo334(a) == a) +} + +type point335 struct { + x0 int16 + x1 int8 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo335 C.demo335 +func cdemo335(a point335) point335 + +func demo335(a point335) point335 { + return a +} + +func init() { + a := point335{1, 2, 3, 4, 5} + assert("cdemo335\000", cdemo335(a) == a) + assert("demo335\000", demo335(a) == a) +} + +type point336 struct { + x0 int16 + x1 int8 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo336 C.demo336 +func cdemo336(a point336) point336 + +func demo336(a point336) point336 { + return a +} + +func init() { + a := point336{1, 2, 3, 4, 5} + assert("cdemo336\000", cdemo336(a) == a) + assert("demo336\000", demo336(a) == a) +} + +type point337 struct { + x0 int16 + x1 int8 + x2 int32 +} + +//go:linkname cdemo337 C.demo337 +func cdemo337(a point337) point337 + +func demo337(a point337) point337 { + return a +} + +func init() { + a := point337{1, 2, 3} + assert("cdemo337\000", cdemo337(a) == a) + assert("demo337\000", demo337(a) == a) +} + +type point338 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int8 +} + +//go:linkname cdemo338 C.demo338 +func cdemo338(a point338) point338 + +func demo338(a point338) point338 { + return a +} + +func init() { + a := point338{1, 2, 3, 4} + assert("cdemo338\000", cdemo338(a) == a) + assert("demo338\000", demo338(a) == a) +} + +type point339 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo339 C.demo339 +func cdemo339(a point339) point339 + +func demo339(a point339) point339 { + return a +} + +func init() { + a := point339{1, 2, 3, 4, 5} + assert("cdemo339\000", cdemo339(a) == a) + assert("demo339\000", demo339(a) == a) +} + +type point340 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo340 C.demo340 +func cdemo340(a point340) point340 + +func demo340(a point340) point340 { + return a +} + +func init() { + a := point340{1, 2, 3, 4, 5} + assert("cdemo340\000", cdemo340(a) == a) + assert("demo340\000", demo340(a) == a) +} + +type point341 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo341 C.demo341 +func cdemo341(a point341) point341 + +func demo341(a point341) point341 { + return a +} + +func init() { + a := point341{1, 2, 3, 4, 5} + assert("cdemo341\000", cdemo341(a) == a) + assert("demo341\000", demo341(a) == a) +} + +type point342 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo342 C.demo342 +func cdemo342(a point342) point342 + +func demo342(a point342) point342 { + return a +} + +func init() { + a := point342{1, 2, 3, 4, 5} + assert("cdemo342\000", cdemo342(a) == a) + assert("demo342\000", demo342(a) == a) +} + +type point343 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int16 +} + +//go:linkname cdemo343 C.demo343 +func cdemo343(a point343) point343 + +func demo343(a point343) point343 { + return a +} + +func init() { + a := point343{1, 2, 3, 4} + assert("cdemo343\000", cdemo343(a) == a) + assert("demo343\000", demo343(a) == a) +} + +type point344 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo344 C.demo344 +func cdemo344(a point344) point344 + +func demo344(a point344) point344 { + return a +} + +func init() { + a := point344{1, 2, 3, 4, 5} + assert("cdemo344\000", cdemo344(a) == a) + assert("demo344\000", demo344(a) == a) +} + +type point345 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo345 C.demo345 +func cdemo345(a point345) point345 + +func demo345(a point345) point345 { + return a +} + +func init() { + a := point345{1, 2, 3, 4, 5} + assert("cdemo345\000", cdemo345(a) == a) + assert("demo345\000", demo345(a) == a) +} + +type point346 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo346 C.demo346 +func cdemo346(a point346) point346 + +func demo346(a point346) point346 { + return a +} + +func init() { + a := point346{1, 2, 3, 4, 5} + assert("cdemo346\000", cdemo346(a) == a) + assert("demo346\000", demo346(a) == a) +} + +type point347 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo347 C.demo347 +func cdemo347(a point347) point347 + +func demo347(a point347) point347 { + return a +} + +func init() { + a := point347{1, 2, 3, 4, 5} + assert("cdemo347\000", cdemo347(a) == a) + assert("demo347\000", demo347(a) == a) +} + +type point348 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int32 +} + +//go:linkname cdemo348 C.demo348 +func cdemo348(a point348) point348 + +func demo348(a point348) point348 { + return a +} + +func init() { + a := point348{1, 2, 3, 4} + assert("cdemo348\000", cdemo348(a) == a) + assert("demo348\000", demo348(a) == a) +} + +type point349 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo349 C.demo349 +func cdemo349(a point349) point349 + +func demo349(a point349) point349 { + return a +} + +func init() { + a := point349{1, 2, 3, 4, 5} + assert("cdemo349\000", cdemo349(a) == a) + assert("demo349\000", demo349(a) == a) +} + +type point350 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo350 C.demo350 +func cdemo350(a point350) point350 + +func demo350(a point350) point350 { + return a +} + +func init() { + a := point350{1, 2, 3, 4, 5} + assert("cdemo350\000", cdemo350(a) == a) + assert("demo350\000", demo350(a) == a) +} + +type point351 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo351 C.demo351 +func cdemo351(a point351) point351 + +func demo351(a point351) point351 { + return a +} + +func init() { + a := point351{1, 2, 3, 4, 5} + assert("cdemo351\000", cdemo351(a) == a) + assert("demo351\000", demo351(a) == a) +} + +type point352 struct { + x0 int16 + x1 int8 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo352 C.demo352 +func cdemo352(a point352) point352 + +func demo352(a point352) point352 { + return a +} + +func init() { + a := point352{1, 2, 3, 4, 5} + assert("cdemo352\000", cdemo352(a) == a) + assert("demo352\000", demo352(a) == a) +} + +type point353 struct { + x0 int16 + x1 int8 + x2 int32 + x3 float32 +} + +//go:linkname cdemo353 C.demo353 +func cdemo353(a point353) point353 + +func demo353(a point353) point353 { + return a +} + +func init() { + a := point353{1, 2, 3, 4} + assert("cdemo353\000", cdemo353(a) == a) + assert("demo353\000", demo353(a) == a) +} + +type point354 struct { + x0 int16 + x1 int8 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo354 C.demo354 +func cdemo354(a point354) point354 + +func demo354(a point354) point354 { + return a +} + +func init() { + a := point354{1, 2, 3, 4, 5} + assert("cdemo354\000", cdemo354(a) == a) + assert("demo354\000", demo354(a) == a) +} + +type point355 struct { + x0 int16 + x1 int8 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo355 C.demo355 +func cdemo355(a point355) point355 + +func demo355(a point355) point355 { + return a +} + +func init() { + a := point355{1, 2, 3, 4, 5} + assert("cdemo355\000", cdemo355(a) == a) + assert("demo355\000", demo355(a) == a) +} + +type point356 struct { + x0 int16 + x1 int8 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo356 C.demo356 +func cdemo356(a point356) point356 + +func demo356(a point356) point356 { + return a +} + +func init() { + a := point356{1, 2, 3, 4, 5} + assert("cdemo356\000", cdemo356(a) == a) + assert("demo356\000", demo356(a) == a) +} + +type point357 struct { + x0 int16 + x1 int8 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo357 C.demo357 +func cdemo357(a point357) point357 + +func demo357(a point357) point357 { + return a +} + +func init() { + a := point357{1, 2, 3, 4, 5} + assert("cdemo357\000", cdemo357(a) == a) + assert("demo357\000", demo357(a) == a) +} + +type point358 struct { + x0 int16 + x1 int8 + x2 float32 +} + +//go:linkname cdemo358 C.demo358 +func cdemo358(a point358) point358 + +func demo358(a point358) point358 { + return a +} + +func init() { + a := point358{1, 2, 3} + assert("cdemo358\000", cdemo358(a) == a) + assert("demo358\000", demo358(a) == a) +} + +type point359 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int8 +} + +//go:linkname cdemo359 C.demo359 +func cdemo359(a point359) point359 + +func demo359(a point359) point359 { + return a +} + +func init() { + a := point359{1, 2, 3, 4} + assert("cdemo359\000", cdemo359(a) == a) + assert("demo359\000", demo359(a) == a) +} + +type point360 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo360 C.demo360 +func cdemo360(a point360) point360 + +func demo360(a point360) point360 { + return a +} + +func init() { + a := point360{1, 2, 3, 4, 5} + assert("cdemo360\000", cdemo360(a) == a) + assert("demo360\000", demo360(a) == a) +} + +type point361 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo361 C.demo361 +func cdemo361(a point361) point361 + +func demo361(a point361) point361 { + return a +} + +func init() { + a := point361{1, 2, 3, 4, 5} + assert("cdemo361\000", cdemo361(a) == a) + assert("demo361\000", demo361(a) == a) +} + +type point362 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo362 C.demo362 +func cdemo362(a point362) point362 + +func demo362(a point362) point362 { + return a +} + +func init() { + a := point362{1, 2, 3, 4, 5} + assert("cdemo362\000", cdemo362(a) == a) + assert("demo362\000", demo362(a) == a) +} + +type point363 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo363 C.demo363 +func cdemo363(a point363) point363 + +func demo363(a point363) point363 { + return a +} + +func init() { + a := point363{1, 2, 3, 4, 5} + assert("cdemo363\000", cdemo363(a) == a) + assert("demo363\000", demo363(a) == a) +} + +type point364 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int16 +} + +//go:linkname cdemo364 C.demo364 +func cdemo364(a point364) point364 + +func demo364(a point364) point364 { + return a +} + +func init() { + a := point364{1, 2, 3, 4} + assert("cdemo364\000", cdemo364(a) == a) + assert("demo364\000", demo364(a) == a) +} + +type point365 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo365 C.demo365 +func cdemo365(a point365) point365 + +func demo365(a point365) point365 { + return a +} + +func init() { + a := point365{1, 2, 3, 4, 5} + assert("cdemo365\000", cdemo365(a) == a) + assert("demo365\000", demo365(a) == a) +} + +type point366 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo366 C.demo366 +func cdemo366(a point366) point366 + +func demo366(a point366) point366 { + return a +} + +func init() { + a := point366{1, 2, 3, 4, 5} + assert("cdemo366\000", cdemo366(a) == a) + assert("demo366\000", demo366(a) == a) +} + +type point367 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo367 C.demo367 +func cdemo367(a point367) point367 + +func demo367(a point367) point367 { + return a +} + +func init() { + a := point367{1, 2, 3, 4, 5} + assert("cdemo367\000", cdemo367(a) == a) + assert("demo367\000", demo367(a) == a) +} + +type point368 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo368 C.demo368 +func cdemo368(a point368) point368 + +func demo368(a point368) point368 { + return a +} + +func init() { + a := point368{1, 2, 3, 4, 5} + assert("cdemo368\000", cdemo368(a) == a) + assert("demo368\000", demo368(a) == a) +} + +type point369 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int32 +} + +//go:linkname cdemo369 C.demo369 +func cdemo369(a point369) point369 + +func demo369(a point369) point369 { + return a +} + +func init() { + a := point369{1, 2, 3, 4} + assert("cdemo369\000", cdemo369(a) == a) + assert("demo369\000", demo369(a) == a) +} + +type point370 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo370 C.demo370 +func cdemo370(a point370) point370 + +func demo370(a point370) point370 { + return a +} + +func init() { + a := point370{1, 2, 3, 4, 5} + assert("cdemo370\000", cdemo370(a) == a) + assert("demo370\000", demo370(a) == a) +} + +type point371 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo371 C.demo371 +func cdemo371(a point371) point371 + +func demo371(a point371) point371 { + return a +} + +func init() { + a := point371{1, 2, 3, 4, 5} + assert("cdemo371\000", cdemo371(a) == a) + assert("demo371\000", demo371(a) == a) +} + +type point372 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo372 C.demo372 +func cdemo372(a point372) point372 + +func demo372(a point372) point372 { + return a +} + +func init() { + a := point372{1, 2, 3, 4, 5} + assert("cdemo372\000", cdemo372(a) == a) + assert("demo372\000", demo372(a) == a) +} + +type point373 struct { + x0 int16 + x1 int8 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo373 C.demo373 +func cdemo373(a point373) point373 + +func demo373(a point373) point373 { + return a +} + +func init() { + a := point373{1, 2, 3, 4, 5} + assert("cdemo373\000", cdemo373(a) == a) + assert("demo373\000", demo373(a) == a) +} + +type point374 struct { + x0 int16 + x1 int8 + x2 float32 + x3 float32 +} + +//go:linkname cdemo374 C.demo374 +func cdemo374(a point374) point374 + +func demo374(a point374) point374 { + return a +} + +func init() { + a := point374{1, 2, 3, 4} + assert("cdemo374\000", cdemo374(a) == a) + assert("demo374\000", demo374(a) == a) +} + +type point375 struct { + x0 int16 + x1 int8 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo375 C.demo375 +func cdemo375(a point375) point375 + +func demo375(a point375) point375 { + return a +} + +func init() { + a := point375{1, 2, 3, 4, 5} + assert("cdemo375\000", cdemo375(a) == a) + assert("demo375\000", demo375(a) == a) +} + +type point376 struct { + x0 int16 + x1 int8 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo376 C.demo376 +func cdemo376(a point376) point376 + +func demo376(a point376) point376 { + return a +} + +func init() { + a := point376{1, 2, 3, 4, 5} + assert("cdemo376\000", cdemo376(a) == a) + assert("demo376\000", demo376(a) == a) +} + +type point377 struct { + x0 int16 + x1 int8 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo377 C.demo377 +func cdemo377(a point377) point377 + +func demo377(a point377) point377 { + return a +} + +func init() { + a := point377{1, 2, 3, 4, 5} + assert("cdemo377\000", cdemo377(a) == a) + assert("demo377\000", demo377(a) == a) +} + +type point378 struct { + x0 int16 + x1 int8 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo378 C.demo378 +func cdemo378(a point378) point378 + +func demo378(a point378) point378 { + return a +} + +func init() { + a := point378{1, 2, 3, 4, 5} + assert("cdemo378\000", cdemo378(a) == a) + assert("demo378\000", demo378(a) == a) +} + +type point379 struct { + x0 int16 + x1 int32 + x2 int8 +} + +//go:linkname cdemo379 C.demo379 +func cdemo379(a point379) point379 + +func demo379(a point379) point379 { + return a +} + +func init() { + a := point379{1, 2, 3} + assert("cdemo379\000", cdemo379(a) == a) + assert("demo379\000", demo379(a) == a) +} + +type point380 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int8 +} + +//go:linkname cdemo380 C.demo380 +func cdemo380(a point380) point380 + +func demo380(a point380) point380 { + return a +} + +func init() { + a := point380{1, 2, 3, 4} + assert("cdemo380\000", cdemo380(a) == a) + assert("demo380\000", demo380(a) == a) +} + +type point381 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo381 C.demo381 +func cdemo381(a point381) point381 + +func demo381(a point381) point381 { + return a +} + +func init() { + a := point381{1, 2, 3, 4, 5} + assert("cdemo381\000", cdemo381(a) == a) + assert("demo381\000", demo381(a) == a) +} + +type point382 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo382 C.demo382 +func cdemo382(a point382) point382 + +func demo382(a point382) point382 { + return a +} + +func init() { + a := point382{1, 2, 3, 4, 5} + assert("cdemo382\000", cdemo382(a) == a) + assert("demo382\000", demo382(a) == a) +} + +type point383 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo383 C.demo383 +func cdemo383(a point383) point383 + +func demo383(a point383) point383 { + return a +} + +func init() { + a := point383{1, 2, 3, 4, 5} + assert("cdemo383\000", cdemo383(a) == a) + assert("demo383\000", demo383(a) == a) +} + +type point384 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo384 C.demo384 +func cdemo384(a point384) point384 + +func demo384(a point384) point384 { + return a +} + +func init() { + a := point384{1, 2, 3, 4, 5} + assert("cdemo384\000", cdemo384(a) == a) + assert("demo384\000", demo384(a) == a) +} + +type point385 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int16 +} + +//go:linkname cdemo385 C.demo385 +func cdemo385(a point385) point385 + +func demo385(a point385) point385 { + return a +} + +func init() { + a := point385{1, 2, 3, 4} + assert("cdemo385\000", cdemo385(a) == a) + assert("demo385\000", demo385(a) == a) +} + +type point386 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo386 C.demo386 +func cdemo386(a point386) point386 + +func demo386(a point386) point386 { + return a +} + +func init() { + a := point386{1, 2, 3, 4, 5} + assert("cdemo386\000", cdemo386(a) == a) + assert("demo386\000", demo386(a) == a) +} + +type point387 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo387 C.demo387 +func cdemo387(a point387) point387 + +func demo387(a point387) point387 { + return a +} + +func init() { + a := point387{1, 2, 3, 4, 5} + assert("cdemo387\000", cdemo387(a) == a) + assert("demo387\000", demo387(a) == a) +} + +type point388 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo388 C.demo388 +func cdemo388(a point388) point388 + +func demo388(a point388) point388 { + return a +} + +func init() { + a := point388{1, 2, 3, 4, 5} + assert("cdemo388\000", cdemo388(a) == a) + assert("demo388\000", demo388(a) == a) +} + +type point389 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo389 C.demo389 +func cdemo389(a point389) point389 + +func demo389(a point389) point389 { + return a +} + +func init() { + a := point389{1, 2, 3, 4, 5} + assert("cdemo389\000", cdemo389(a) == a) + assert("demo389\000", demo389(a) == a) +} + +type point390 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int32 +} + +//go:linkname cdemo390 C.demo390 +func cdemo390(a point390) point390 + +func demo390(a point390) point390 { + return a +} + +func init() { + a := point390{1, 2, 3, 4} + assert("cdemo390\000", cdemo390(a) == a) + assert("demo390\000", demo390(a) == a) +} + +type point391 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo391 C.demo391 +func cdemo391(a point391) point391 + +func demo391(a point391) point391 { + return a +} + +func init() { + a := point391{1, 2, 3, 4, 5} + assert("cdemo391\000", cdemo391(a) == a) + assert("demo391\000", demo391(a) == a) +} + +type point392 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo392 C.demo392 +func cdemo392(a point392) point392 + +func demo392(a point392) point392 { + return a +} + +func init() { + a := point392{1, 2, 3, 4, 5} + assert("cdemo392\000", cdemo392(a) == a) + assert("demo392\000", demo392(a) == a) +} + +type point393 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo393 C.demo393 +func cdemo393(a point393) point393 + +func demo393(a point393) point393 { + return a +} + +func init() { + a := point393{1, 2, 3, 4, 5} + assert("cdemo393\000", cdemo393(a) == a) + assert("demo393\000", demo393(a) == a) +} + +type point394 struct { + x0 int16 + x1 int32 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo394 C.demo394 +func cdemo394(a point394) point394 + +func demo394(a point394) point394 { + return a +} + +func init() { + a := point394{1, 2, 3, 4, 5} + assert("cdemo394\000", cdemo394(a) == a) + assert("demo394\000", demo394(a) == a) +} + +type point395 struct { + x0 int16 + x1 int32 + x2 int8 + x3 float32 +} + +//go:linkname cdemo395 C.demo395 +func cdemo395(a point395) point395 + +func demo395(a point395) point395 { + return a +} + +func init() { + a := point395{1, 2, 3, 4} + assert("cdemo395\000", cdemo395(a) == a) + assert("demo395\000", demo395(a) == a) +} + +type point396 struct { + x0 int16 + x1 int32 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo396 C.demo396 +func cdemo396(a point396) point396 + +func demo396(a point396) point396 { + return a +} + +func init() { + a := point396{1, 2, 3, 4, 5} + assert("cdemo396\000", cdemo396(a) == a) + assert("demo396\000", demo396(a) == a) +} + +type point397 struct { + x0 int16 + x1 int32 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo397 C.demo397 +func cdemo397(a point397) point397 + +func demo397(a point397) point397 { + return a +} + +func init() { + a := point397{1, 2, 3, 4, 5} + assert("cdemo397\000", cdemo397(a) == a) + assert("demo397\000", demo397(a) == a) +} + +type point398 struct { + x0 int16 + x1 int32 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo398 C.demo398 +func cdemo398(a point398) point398 + +func demo398(a point398) point398 { + return a +} + +func init() { + a := point398{1, 2, 3, 4, 5} + assert("cdemo398\000", cdemo398(a) == a) + assert("demo398\000", demo398(a) == a) +} + +type point399 struct { + x0 int16 + x1 int32 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo399 C.demo399 +func cdemo399(a point399) point399 + +func demo399(a point399) point399 { + return a +} + +func init() { + a := point399{1, 2, 3, 4, 5} + assert("cdemo399\000", cdemo399(a) == a) + assert("demo399\000", demo399(a) == a) +} + +type point400 struct { + x0 int16 + x1 int32 + x2 int16 +} + +//go:linkname cdemo400 C.demo400 +func cdemo400(a point400) point400 + +func demo400(a point400) point400 { + return a +} + +func init() { + a := point400{1, 2, 3} + assert("cdemo400\000", cdemo400(a) == a) + assert("demo400\000", demo400(a) == a) +} + +type point401 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int8 +} + +//go:linkname cdemo401 C.demo401 +func cdemo401(a point401) point401 + +func demo401(a point401) point401 { + return a +} + +func init() { + a := point401{1, 2, 3, 4} + assert("cdemo401\000", cdemo401(a) == a) + assert("demo401\000", demo401(a) == a) +} + +type point402 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo402 C.demo402 +func cdemo402(a point402) point402 + +func demo402(a point402) point402 { + return a +} + +func init() { + a := point402{1, 2, 3, 4, 5} + assert("cdemo402\000", cdemo402(a) == a) + assert("demo402\000", demo402(a) == a) +} + +type point403 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo403 C.demo403 +func cdemo403(a point403) point403 + +func demo403(a point403) point403 { + return a +} + +func init() { + a := point403{1, 2, 3, 4, 5} + assert("cdemo403\000", cdemo403(a) == a) + assert("demo403\000", demo403(a) == a) +} + +type point404 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo404 C.demo404 +func cdemo404(a point404) point404 + +func demo404(a point404) point404 { + return a +} + +func init() { + a := point404{1, 2, 3, 4, 5} + assert("cdemo404\000", cdemo404(a) == a) + assert("demo404\000", demo404(a) == a) +} + +type point405 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo405 C.demo405 +func cdemo405(a point405) point405 + +func demo405(a point405) point405 { + return a +} + +func init() { + a := point405{1, 2, 3, 4, 5} + assert("cdemo405\000", cdemo405(a) == a) + assert("demo405\000", demo405(a) == a) +} + +type point406 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int16 +} + +//go:linkname cdemo406 C.demo406 +func cdemo406(a point406) point406 + +func demo406(a point406) point406 { + return a +} + +func init() { + a := point406{1, 2, 3, 4} + assert("cdemo406\000", cdemo406(a) == a) + assert("demo406\000", demo406(a) == a) +} + +type point407 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo407 C.demo407 +func cdemo407(a point407) point407 + +func demo407(a point407) point407 { + return a +} + +func init() { + a := point407{1, 2, 3, 4, 5} + assert("cdemo407\000", cdemo407(a) == a) + assert("demo407\000", demo407(a) == a) +} + +type point408 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo408 C.demo408 +func cdemo408(a point408) point408 + +func demo408(a point408) point408 { + return a +} + +func init() { + a := point408{1, 2, 3, 4, 5} + assert("cdemo408\000", cdemo408(a) == a) + assert("demo408\000", demo408(a) == a) +} + +type point409 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo409 C.demo409 +func cdemo409(a point409) point409 + +func demo409(a point409) point409 { + return a +} + +func init() { + a := point409{1, 2, 3, 4, 5} + assert("cdemo409\000", cdemo409(a) == a) + assert("demo409\000", demo409(a) == a) +} + +type point410 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo410 C.demo410 +func cdemo410(a point410) point410 + +func demo410(a point410) point410 { + return a +} + +func init() { + a := point410{1, 2, 3, 4, 5} + assert("cdemo410\000", cdemo410(a) == a) + assert("demo410\000", demo410(a) == a) +} + +type point411 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int32 +} + +//go:linkname cdemo411 C.demo411 +func cdemo411(a point411) point411 + +func demo411(a point411) point411 { + return a +} + +func init() { + a := point411{1, 2, 3, 4} + assert("cdemo411\000", cdemo411(a) == a) + assert("demo411\000", demo411(a) == a) +} + +type point412 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo412 C.demo412 +func cdemo412(a point412) point412 + +func demo412(a point412) point412 { + return a +} + +func init() { + a := point412{1, 2, 3, 4, 5} + assert("cdemo412\000", cdemo412(a) == a) + assert("demo412\000", demo412(a) == a) +} + +type point413 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo413 C.demo413 +func cdemo413(a point413) point413 + +func demo413(a point413) point413 { + return a +} + +func init() { + a := point413{1, 2, 3, 4, 5} + assert("cdemo413\000", cdemo413(a) == a) + assert("demo413\000", demo413(a) == a) +} + +type point414 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo414 C.demo414 +func cdemo414(a point414) point414 + +func demo414(a point414) point414 { + return a +} + +func init() { + a := point414{1, 2, 3, 4, 5} + assert("cdemo414\000", cdemo414(a) == a) + assert("demo414\000", demo414(a) == a) +} + +type point415 struct { + x0 int16 + x1 int32 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo415 C.demo415 +func cdemo415(a point415) point415 + +func demo415(a point415) point415 { + return a +} + +func init() { + a := point415{1, 2, 3, 4, 5} + assert("cdemo415\000", cdemo415(a) == a) + assert("demo415\000", demo415(a) == a) +} + +type point416 struct { + x0 int16 + x1 int32 + x2 int16 + x3 float32 +} + +//go:linkname cdemo416 C.demo416 +func cdemo416(a point416) point416 + +func demo416(a point416) point416 { + return a +} + +func init() { + a := point416{1, 2, 3, 4} + assert("cdemo416\000", cdemo416(a) == a) + assert("demo416\000", demo416(a) == a) +} + +type point417 struct { + x0 int16 + x1 int32 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo417 C.demo417 +func cdemo417(a point417) point417 + +func demo417(a point417) point417 { + return a +} + +func init() { + a := point417{1, 2, 3, 4, 5} + assert("cdemo417\000", cdemo417(a) == a) + assert("demo417\000", demo417(a) == a) +} + +type point418 struct { + x0 int16 + x1 int32 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo418 C.demo418 +func cdemo418(a point418) point418 + +func demo418(a point418) point418 { + return a +} + +func init() { + a := point418{1, 2, 3, 4, 5} + assert("cdemo418\000", cdemo418(a) == a) + assert("demo418\000", demo418(a) == a) +} + +type point419 struct { + x0 int16 + x1 int32 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo419 C.demo419 +func cdemo419(a point419) point419 + +func demo419(a point419) point419 { + return a +} + +func init() { + a := point419{1, 2, 3, 4, 5} + assert("cdemo419\000", cdemo419(a) == a) + assert("demo419\000", demo419(a) == a) +} + +type point420 struct { + x0 int16 + x1 int32 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo420 C.demo420 +func cdemo420(a point420) point420 + +func demo420(a point420) point420 { + return a +} + +func init() { + a := point420{1, 2, 3, 4, 5} + assert("cdemo420\000", cdemo420(a) == a) + assert("demo420\000", demo420(a) == a) +} + +type point421 struct { + x0 int16 + x1 int32 + x2 int32 +} + +//go:linkname cdemo421 C.demo421 +func cdemo421(a point421) point421 + +func demo421(a point421) point421 { + return a +} + +func init() { + a := point421{1, 2, 3} + assert("cdemo421\000", cdemo421(a) == a) + assert("demo421\000", demo421(a) == a) +} + +type point422 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int8 +} + +//go:linkname cdemo422 C.demo422 +func cdemo422(a point422) point422 + +func demo422(a point422) point422 { + return a +} + +func init() { + a := point422{1, 2, 3, 4} + assert("cdemo422\000", cdemo422(a) == a) + assert("demo422\000", demo422(a) == a) +} + +type point423 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo423 C.demo423 +func cdemo423(a point423) point423 + +func demo423(a point423) point423 { + return a +} + +func init() { + a := point423{1, 2, 3, 4, 5} + assert("cdemo423\000", cdemo423(a) == a) + assert("demo423\000", demo423(a) == a) +} + +type point424 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo424 C.demo424 +func cdemo424(a point424) point424 + +func demo424(a point424) point424 { + return a +} + +func init() { + a := point424{1, 2, 3, 4, 5} + assert("cdemo424\000", cdemo424(a) == a) + assert("demo424\000", demo424(a) == a) +} + +type point425 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo425 C.demo425 +func cdemo425(a point425) point425 + +func demo425(a point425) point425 { + return a +} + +func init() { + a := point425{1, 2, 3, 4, 5} + assert("cdemo425\000", cdemo425(a) == a) + assert("demo425\000", demo425(a) == a) +} + +type point426 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo426 C.demo426 +func cdemo426(a point426) point426 + +func demo426(a point426) point426 { + return a +} + +func init() { + a := point426{1, 2, 3, 4, 5} + assert("cdemo426\000", cdemo426(a) == a) + assert("demo426\000", demo426(a) == a) +} + +type point427 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int16 +} + +//go:linkname cdemo427 C.demo427 +func cdemo427(a point427) point427 + +func demo427(a point427) point427 { + return a +} + +func init() { + a := point427{1, 2, 3, 4} + assert("cdemo427\000", cdemo427(a) == a) + assert("demo427\000", demo427(a) == a) +} + +type point428 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo428 C.demo428 +func cdemo428(a point428) point428 + +func demo428(a point428) point428 { + return a +} + +func init() { + a := point428{1, 2, 3, 4, 5} + assert("cdemo428\000", cdemo428(a) == a) + assert("demo428\000", demo428(a) == a) +} + +type point429 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo429 C.demo429 +func cdemo429(a point429) point429 + +func demo429(a point429) point429 { + return a +} + +func init() { + a := point429{1, 2, 3, 4, 5} + assert("cdemo429\000", cdemo429(a) == a) + assert("demo429\000", demo429(a) == a) +} + +type point430 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo430 C.demo430 +func cdemo430(a point430) point430 + +func demo430(a point430) point430 { + return a +} + +func init() { + a := point430{1, 2, 3, 4, 5} + assert("cdemo430\000", cdemo430(a) == a) + assert("demo430\000", demo430(a) == a) +} + +type point431 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo431 C.demo431 +func cdemo431(a point431) point431 + +func demo431(a point431) point431 { + return a +} + +func init() { + a := point431{1, 2, 3, 4, 5} + assert("cdemo431\000", cdemo431(a) == a) + assert("demo431\000", demo431(a) == a) +} + +type point432 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int32 +} + +//go:linkname cdemo432 C.demo432 +func cdemo432(a point432) point432 + +func demo432(a point432) point432 { + return a +} + +func init() { + a := point432{1, 2, 3, 4} + assert("cdemo432\000", cdemo432(a) == a) + assert("demo432\000", demo432(a) == a) +} + +type point433 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo433 C.demo433 +func cdemo433(a point433) point433 + +func demo433(a point433) point433 { + return a +} + +func init() { + a := point433{1, 2, 3, 4, 5} + assert("cdemo433\000", cdemo433(a) == a) + assert("demo433\000", demo433(a) == a) +} + +type point434 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo434 C.demo434 +func cdemo434(a point434) point434 + +func demo434(a point434) point434 { + return a +} + +func init() { + a := point434{1, 2, 3, 4, 5} + assert("cdemo434\000", cdemo434(a) == a) + assert("demo434\000", demo434(a) == a) +} + +type point435 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo435 C.demo435 +func cdemo435(a point435) point435 + +func demo435(a point435) point435 { + return a +} + +func init() { + a := point435{1, 2, 3, 4, 5} + assert("cdemo435\000", cdemo435(a) == a) + assert("demo435\000", demo435(a) == a) +} + +type point436 struct { + x0 int16 + x1 int32 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo436 C.demo436 +func cdemo436(a point436) point436 + +func demo436(a point436) point436 { + return a +} + +func init() { + a := point436{1, 2, 3, 4, 5} + assert("cdemo436\000", cdemo436(a) == a) + assert("demo436\000", demo436(a) == a) +} + +type point437 struct { + x0 int16 + x1 int32 + x2 int32 + x3 float32 +} + +//go:linkname cdemo437 C.demo437 +func cdemo437(a point437) point437 + +func demo437(a point437) point437 { + return a +} + +func init() { + a := point437{1, 2, 3, 4} + assert("cdemo437\000", cdemo437(a) == a) + assert("demo437\000", demo437(a) == a) +} + +type point438 struct { + x0 int16 + x1 int32 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo438 C.demo438 +func cdemo438(a point438) point438 + +func demo438(a point438) point438 { + return a +} + +func init() { + a := point438{1, 2, 3, 4, 5} + assert("cdemo438\000", cdemo438(a) == a) + assert("demo438\000", demo438(a) == a) +} + +type point439 struct { + x0 int16 + x1 int32 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo439 C.demo439 +func cdemo439(a point439) point439 + +func demo439(a point439) point439 { + return a +} + +func init() { + a := point439{1, 2, 3, 4, 5} + assert("cdemo439\000", cdemo439(a) == a) + assert("demo439\000", demo439(a) == a) +} + +type point440 struct { + x0 int16 + x1 int32 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo440 C.demo440 +func cdemo440(a point440) point440 + +func demo440(a point440) point440 { + return a +} + +func init() { + a := point440{1, 2, 3, 4, 5} + assert("cdemo440\000", cdemo440(a) == a) + assert("demo440\000", demo440(a) == a) +} + +type point441 struct { + x0 int16 + x1 int32 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo441 C.demo441 +func cdemo441(a point441) point441 + +func demo441(a point441) point441 { + return a +} + +func init() { + a := point441{1, 2, 3, 4, 5} + assert("cdemo441\000", cdemo441(a) == a) + assert("demo441\000", demo441(a) == a) +} + +type point442 struct { + x0 int16 + x1 int32 + x2 float32 +} + +//go:linkname cdemo442 C.demo442 +func cdemo442(a point442) point442 + +func demo442(a point442) point442 { + return a +} + +func init() { + a := point442{1, 2, 3} + assert("cdemo442\000", cdemo442(a) == a) + assert("demo442\000", demo442(a) == a) +} + +type point443 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int8 +} + +//go:linkname cdemo443 C.demo443 +func cdemo443(a point443) point443 + +func demo443(a point443) point443 { + return a +} + +func init() { + a := point443{1, 2, 3, 4} + assert("cdemo443\000", cdemo443(a) == a) + assert("demo443\000", demo443(a) == a) +} + +type point444 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo444 C.demo444 +func cdemo444(a point444) point444 + +func demo444(a point444) point444 { + return a +} + +func init() { + a := point444{1, 2, 3, 4, 5} + assert("cdemo444\000", cdemo444(a) == a) + assert("demo444\000", demo444(a) == a) +} + +type point445 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo445 C.demo445 +func cdemo445(a point445) point445 + +func demo445(a point445) point445 { + return a +} + +func init() { + a := point445{1, 2, 3, 4, 5} + assert("cdemo445\000", cdemo445(a) == a) + assert("demo445\000", demo445(a) == a) +} + +type point446 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo446 C.demo446 +func cdemo446(a point446) point446 + +func demo446(a point446) point446 { + return a +} + +func init() { + a := point446{1, 2, 3, 4, 5} + assert("cdemo446\000", cdemo446(a) == a) + assert("demo446\000", demo446(a) == a) +} + +type point447 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo447 C.demo447 +func cdemo447(a point447) point447 + +func demo447(a point447) point447 { + return a +} + +func init() { + a := point447{1, 2, 3, 4, 5} + assert("cdemo447\000", cdemo447(a) == a) + assert("demo447\000", demo447(a) == a) +} + +type point448 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int16 +} + +//go:linkname cdemo448 C.demo448 +func cdemo448(a point448) point448 + +func demo448(a point448) point448 { + return a +} + +func init() { + a := point448{1, 2, 3, 4} + assert("cdemo448\000", cdemo448(a) == a) + assert("demo448\000", demo448(a) == a) +} + +type point449 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo449 C.demo449 +func cdemo449(a point449) point449 + +func demo449(a point449) point449 { + return a +} + +func init() { + a := point449{1, 2, 3, 4, 5} + assert("cdemo449\000", cdemo449(a) == a) + assert("demo449\000", demo449(a) == a) +} + +type point450 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo450 C.demo450 +func cdemo450(a point450) point450 + +func demo450(a point450) point450 { + return a +} + +func init() { + a := point450{1, 2, 3, 4, 5} + assert("cdemo450\000", cdemo450(a) == a) + assert("demo450\000", demo450(a) == a) +} + +type point451 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo451 C.demo451 +func cdemo451(a point451) point451 + +func demo451(a point451) point451 { + return a +} + +func init() { + a := point451{1, 2, 3, 4, 5} + assert("cdemo451\000", cdemo451(a) == a) + assert("demo451\000", demo451(a) == a) +} + +type point452 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo452 C.demo452 +func cdemo452(a point452) point452 + +func demo452(a point452) point452 { + return a +} + +func init() { + a := point452{1, 2, 3, 4, 5} + assert("cdemo452\000", cdemo452(a) == a) + assert("demo452\000", demo452(a) == a) +} + +type point453 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int32 +} + +//go:linkname cdemo453 C.demo453 +func cdemo453(a point453) point453 + +func demo453(a point453) point453 { + return a +} + +func init() { + a := point453{1, 2, 3, 4} + assert("cdemo453\000", cdemo453(a) == a) + assert("demo453\000", demo453(a) == a) +} + +type point454 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo454 C.demo454 +func cdemo454(a point454) point454 + +func demo454(a point454) point454 { + return a +} + +func init() { + a := point454{1, 2, 3, 4, 5} + assert("cdemo454\000", cdemo454(a) == a) + assert("demo454\000", demo454(a) == a) +} + +type point455 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo455 C.demo455 +func cdemo455(a point455) point455 + +func demo455(a point455) point455 { + return a +} + +func init() { + a := point455{1, 2, 3, 4, 5} + assert("cdemo455\000", cdemo455(a) == a) + assert("demo455\000", demo455(a) == a) +} + +type point456 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo456 C.demo456 +func cdemo456(a point456) point456 + +func demo456(a point456) point456 { + return a +} + +func init() { + a := point456{1, 2, 3, 4, 5} + assert("cdemo456\000", cdemo456(a) == a) + assert("demo456\000", demo456(a) == a) +} + +type point457 struct { + x0 int16 + x1 int32 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo457 C.demo457 +func cdemo457(a point457) point457 + +func demo457(a point457) point457 { + return a +} + +func init() { + a := point457{1, 2, 3, 4, 5} + assert("cdemo457\000", cdemo457(a) == a) + assert("demo457\000", demo457(a) == a) +} + +type point458 struct { + x0 int16 + x1 int32 + x2 float32 + x3 float32 +} + +//go:linkname cdemo458 C.demo458 +func cdemo458(a point458) point458 + +func demo458(a point458) point458 { + return a +} + +func init() { + a := point458{1, 2, 3, 4} + assert("cdemo458\000", cdemo458(a) == a) + assert("demo458\000", demo458(a) == a) +} + +type point459 struct { + x0 int16 + x1 int32 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo459 C.demo459 +func cdemo459(a point459) point459 + +func demo459(a point459) point459 { + return a +} + +func init() { + a := point459{1, 2, 3, 4, 5} + assert("cdemo459\000", cdemo459(a) == a) + assert("demo459\000", demo459(a) == a) +} + +type point460 struct { + x0 int16 + x1 int32 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo460 C.demo460 +func cdemo460(a point460) point460 + +func demo460(a point460) point460 { + return a +} + +func init() { + a := point460{1, 2, 3, 4, 5} + assert("cdemo460\000", cdemo460(a) == a) + assert("demo460\000", demo460(a) == a) +} + +type point461 struct { + x0 int16 + x1 int32 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo461 C.demo461 +func cdemo461(a point461) point461 + +func demo461(a point461) point461 { + return a +} + +func init() { + a := point461{1, 2, 3, 4, 5} + assert("cdemo461\000", cdemo461(a) == a) + assert("demo461\000", demo461(a) == a) +} + +type point462 struct { + x0 int16 + x1 int32 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo462 C.demo462 +func cdemo462(a point462) point462 + +func demo462(a point462) point462 { + return a +} + +func init() { + a := point462{1, 2, 3, 4, 5} + assert("cdemo462\000", cdemo462(a) == a) + assert("demo462\000", demo462(a) == a) +} + +type point463 struct { + x0 int16 + x1 float32 + x2 int8 +} + +//go:linkname cdemo463 C.demo463 +func cdemo463(a point463) point463 + +func demo463(a point463) point463 { + return a +} + +func init() { + a := point463{1, 2, 3} + assert("cdemo463\000", cdemo463(a) == a) + assert("demo463\000", demo463(a) == a) +} + +type point464 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int8 +} + +//go:linkname cdemo464 C.demo464 +func cdemo464(a point464) point464 + +func demo464(a point464) point464 { + return a +} + +func init() { + a := point464{1, 2, 3, 4} + assert("cdemo464\000", cdemo464(a) == a) + assert("demo464\000", demo464(a) == a) +} + +type point465 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo465 C.demo465 +func cdemo465(a point465) point465 + +func demo465(a point465) point465 { + return a +} + +func init() { + a := point465{1, 2, 3, 4, 5} + assert("cdemo465\000", cdemo465(a) == a) + assert("demo465\000", demo465(a) == a) +} + +type point466 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo466 C.demo466 +func cdemo466(a point466) point466 + +func demo466(a point466) point466 { + return a +} + +func init() { + a := point466{1, 2, 3, 4, 5} + assert("cdemo466\000", cdemo466(a) == a) + assert("demo466\000", demo466(a) == a) +} + +type point467 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo467 C.demo467 +func cdemo467(a point467) point467 + +func demo467(a point467) point467 { + return a +} + +func init() { + a := point467{1, 2, 3, 4, 5} + assert("cdemo467\000", cdemo467(a) == a) + assert("demo467\000", demo467(a) == a) +} + +type point468 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo468 C.demo468 +func cdemo468(a point468) point468 + +func demo468(a point468) point468 { + return a +} + +func init() { + a := point468{1, 2, 3, 4, 5} + assert("cdemo468\000", cdemo468(a) == a) + assert("demo468\000", demo468(a) == a) +} + +type point469 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int16 +} + +//go:linkname cdemo469 C.demo469 +func cdemo469(a point469) point469 + +func demo469(a point469) point469 { + return a +} + +func init() { + a := point469{1, 2, 3, 4} + assert("cdemo469\000", cdemo469(a) == a) + assert("demo469\000", demo469(a) == a) +} + +type point470 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo470 C.demo470 +func cdemo470(a point470) point470 + +func demo470(a point470) point470 { + return a +} + +func init() { + a := point470{1, 2, 3, 4, 5} + assert("cdemo470\000", cdemo470(a) == a) + assert("demo470\000", demo470(a) == a) +} + +type point471 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo471 C.demo471 +func cdemo471(a point471) point471 + +func demo471(a point471) point471 { + return a +} + +func init() { + a := point471{1, 2, 3, 4, 5} + assert("cdemo471\000", cdemo471(a) == a) + assert("demo471\000", demo471(a) == a) +} + +type point472 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo472 C.demo472 +func cdemo472(a point472) point472 + +func demo472(a point472) point472 { + return a +} + +func init() { + a := point472{1, 2, 3, 4, 5} + assert("cdemo472\000", cdemo472(a) == a) + assert("demo472\000", demo472(a) == a) +} + +type point473 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo473 C.demo473 +func cdemo473(a point473) point473 + +func demo473(a point473) point473 { + return a +} + +func init() { + a := point473{1, 2, 3, 4, 5} + assert("cdemo473\000", cdemo473(a) == a) + assert("demo473\000", demo473(a) == a) +} + +type point474 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int32 +} + +//go:linkname cdemo474 C.demo474 +func cdemo474(a point474) point474 + +func demo474(a point474) point474 { + return a +} + +func init() { + a := point474{1, 2, 3, 4} + assert("cdemo474\000", cdemo474(a) == a) + assert("demo474\000", demo474(a) == a) +} + +type point475 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo475 C.demo475 +func cdemo475(a point475) point475 + +func demo475(a point475) point475 { + return a +} + +func init() { + a := point475{1, 2, 3, 4, 5} + assert("cdemo475\000", cdemo475(a) == a) + assert("demo475\000", demo475(a) == a) +} + +type point476 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo476 C.demo476 +func cdemo476(a point476) point476 + +func demo476(a point476) point476 { + return a +} + +func init() { + a := point476{1, 2, 3, 4, 5} + assert("cdemo476\000", cdemo476(a) == a) + assert("demo476\000", demo476(a) == a) +} + +type point477 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo477 C.demo477 +func cdemo477(a point477) point477 + +func demo477(a point477) point477 { + return a +} + +func init() { + a := point477{1, 2, 3, 4, 5} + assert("cdemo477\000", cdemo477(a) == a) + assert("demo477\000", demo477(a) == a) +} + +type point478 struct { + x0 int16 + x1 float32 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo478 C.demo478 +func cdemo478(a point478) point478 + +func demo478(a point478) point478 { + return a +} + +func init() { + a := point478{1, 2, 3, 4, 5} + assert("cdemo478\000", cdemo478(a) == a) + assert("demo478\000", demo478(a) == a) +} + +type point479 struct { + x0 int16 + x1 float32 + x2 int8 + x3 float32 +} + +//go:linkname cdemo479 C.demo479 +func cdemo479(a point479) point479 + +func demo479(a point479) point479 { + return a +} + +func init() { + a := point479{1, 2, 3, 4} + assert("cdemo479\000", cdemo479(a) == a) + assert("demo479\000", demo479(a) == a) +} + +type point480 struct { + x0 int16 + x1 float32 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo480 C.demo480 +func cdemo480(a point480) point480 + +func demo480(a point480) point480 { + return a +} + +func init() { + a := point480{1, 2, 3, 4, 5} + assert("cdemo480\000", cdemo480(a) == a) + assert("demo480\000", demo480(a) == a) +} + +type point481 struct { + x0 int16 + x1 float32 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo481 C.demo481 +func cdemo481(a point481) point481 + +func demo481(a point481) point481 { + return a +} + +func init() { + a := point481{1, 2, 3, 4, 5} + assert("cdemo481\000", cdemo481(a) == a) + assert("demo481\000", demo481(a) == a) +} + +type point482 struct { + x0 int16 + x1 float32 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo482 C.demo482 +func cdemo482(a point482) point482 + +func demo482(a point482) point482 { + return a +} + +func init() { + a := point482{1, 2, 3, 4, 5} + assert("cdemo482\000", cdemo482(a) == a) + assert("demo482\000", demo482(a) == a) +} + +type point483 struct { + x0 int16 + x1 float32 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo483 C.demo483 +func cdemo483(a point483) point483 + +func demo483(a point483) point483 { + return a +} + +func init() { + a := point483{1, 2, 3, 4, 5} + assert("cdemo483\000", cdemo483(a) == a) + assert("demo483\000", demo483(a) == a) +} + +type point484 struct { + x0 int16 + x1 float32 + x2 int16 +} + +//go:linkname cdemo484 C.demo484 +func cdemo484(a point484) point484 + +func demo484(a point484) point484 { + return a +} + +func init() { + a := point484{1, 2, 3} + assert("cdemo484\000", cdemo484(a) == a) + assert("demo484\000", demo484(a) == a) +} + +type point485 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int8 +} + +//go:linkname cdemo485 C.demo485 +func cdemo485(a point485) point485 + +func demo485(a point485) point485 { + return a +} + +func init() { + a := point485{1, 2, 3, 4} + assert("cdemo485\000", cdemo485(a) == a) + assert("demo485\000", demo485(a) == a) +} + +type point486 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo486 C.demo486 +func cdemo486(a point486) point486 + +func demo486(a point486) point486 { + return a +} + +func init() { + a := point486{1, 2, 3, 4, 5} + assert("cdemo486\000", cdemo486(a) == a) + assert("demo486\000", demo486(a) == a) +} + +type point487 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo487 C.demo487 +func cdemo487(a point487) point487 + +func demo487(a point487) point487 { + return a +} + +func init() { + a := point487{1, 2, 3, 4, 5} + assert("cdemo487\000", cdemo487(a) == a) + assert("demo487\000", demo487(a) == a) +} + +type point488 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo488 C.demo488 +func cdemo488(a point488) point488 + +func demo488(a point488) point488 { + return a +} + +func init() { + a := point488{1, 2, 3, 4, 5} + assert("cdemo488\000", cdemo488(a) == a) + assert("demo488\000", demo488(a) == a) +} + +type point489 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo489 C.demo489 +func cdemo489(a point489) point489 + +func demo489(a point489) point489 { + return a +} + +func init() { + a := point489{1, 2, 3, 4, 5} + assert("cdemo489\000", cdemo489(a) == a) + assert("demo489\000", demo489(a) == a) +} + +type point490 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int16 +} + +//go:linkname cdemo490 C.demo490 +func cdemo490(a point490) point490 + +func demo490(a point490) point490 { + return a +} + +func init() { + a := point490{1, 2, 3, 4} + assert("cdemo490\000", cdemo490(a) == a) + assert("demo490\000", demo490(a) == a) +} + +type point491 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo491 C.demo491 +func cdemo491(a point491) point491 + +func demo491(a point491) point491 { + return a +} + +func init() { + a := point491{1, 2, 3, 4, 5} + assert("cdemo491\000", cdemo491(a) == a) + assert("demo491\000", demo491(a) == a) +} + +type point492 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo492 C.demo492 +func cdemo492(a point492) point492 + +func demo492(a point492) point492 { + return a +} + +func init() { + a := point492{1, 2, 3, 4, 5} + assert("cdemo492\000", cdemo492(a) == a) + assert("demo492\000", demo492(a) == a) +} + +type point493 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo493 C.demo493 +func cdemo493(a point493) point493 + +func demo493(a point493) point493 { + return a +} + +func init() { + a := point493{1, 2, 3, 4, 5} + assert("cdemo493\000", cdemo493(a) == a) + assert("demo493\000", demo493(a) == a) +} + +type point494 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo494 C.demo494 +func cdemo494(a point494) point494 + +func demo494(a point494) point494 { + return a +} + +func init() { + a := point494{1, 2, 3, 4, 5} + assert("cdemo494\000", cdemo494(a) == a) + assert("demo494\000", demo494(a) == a) +} + +type point495 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int32 +} + +//go:linkname cdemo495 C.demo495 +func cdemo495(a point495) point495 + +func demo495(a point495) point495 { + return a +} + +func init() { + a := point495{1, 2, 3, 4} + assert("cdemo495\000", cdemo495(a) == a) + assert("demo495\000", demo495(a) == a) +} + +type point496 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo496 C.demo496 +func cdemo496(a point496) point496 + +func demo496(a point496) point496 { + return a +} + +func init() { + a := point496{1, 2, 3, 4, 5} + assert("cdemo496\000", cdemo496(a) == a) + assert("demo496\000", demo496(a) == a) +} + +type point497 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo497 C.demo497 +func cdemo497(a point497) point497 + +func demo497(a point497) point497 { + return a +} + +func init() { + a := point497{1, 2, 3, 4, 5} + assert("cdemo497\000", cdemo497(a) == a) + assert("demo497\000", demo497(a) == a) +} + +type point498 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo498 C.demo498 +func cdemo498(a point498) point498 + +func demo498(a point498) point498 { + return a +} + +func init() { + a := point498{1, 2, 3, 4, 5} + assert("cdemo498\000", cdemo498(a) == a) + assert("demo498\000", demo498(a) == a) +} + +type point499 struct { + x0 int16 + x1 float32 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo499 C.demo499 +func cdemo499(a point499) point499 + +func demo499(a point499) point499 { + return a +} + +func init() { + a := point499{1, 2, 3, 4, 5} + assert("cdemo499\000", cdemo499(a) == a) + assert("demo499\000", demo499(a) == a) +} + +type point500 struct { + x0 int16 + x1 float32 + x2 int16 + x3 float32 +} + +//go:linkname cdemo500 C.demo500 +func cdemo500(a point500) point500 + +func demo500(a point500) point500 { + return a +} + +func init() { + a := point500{1, 2, 3, 4} + assert("cdemo500\000", cdemo500(a) == a) + assert("demo500\000", demo500(a) == a) +} + +type point501 struct { + x0 int16 + x1 float32 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo501 C.demo501 +func cdemo501(a point501) point501 + +func demo501(a point501) point501 { + return a +} + +func init() { + a := point501{1, 2, 3, 4, 5} + assert("cdemo501\000", cdemo501(a) == a) + assert("demo501\000", demo501(a) == a) +} + +type point502 struct { + x0 int16 + x1 float32 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo502 C.demo502 +func cdemo502(a point502) point502 + +func demo502(a point502) point502 { + return a +} + +func init() { + a := point502{1, 2, 3, 4, 5} + assert("cdemo502\000", cdemo502(a) == a) + assert("demo502\000", demo502(a) == a) +} + +type point503 struct { + x0 int16 + x1 float32 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo503 C.demo503 +func cdemo503(a point503) point503 + +func demo503(a point503) point503 { + return a +} + +func init() { + a := point503{1, 2, 3, 4, 5} + assert("cdemo503\000", cdemo503(a) == a) + assert("demo503\000", demo503(a) == a) +} + +type point504 struct { + x0 int16 + x1 float32 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo504 C.demo504 +func cdemo504(a point504) point504 + +func demo504(a point504) point504 { + return a +} + +func init() { + a := point504{1, 2, 3, 4, 5} + assert("cdemo504\000", cdemo504(a) == a) + assert("demo504\000", demo504(a) == a) +} + +type point505 struct { + x0 int16 + x1 float32 + x2 int32 +} + +//go:linkname cdemo505 C.demo505 +func cdemo505(a point505) point505 + +func demo505(a point505) point505 { + return a +} + +func init() { + a := point505{1, 2, 3} + assert("cdemo505\000", cdemo505(a) == a) + assert("demo505\000", demo505(a) == a) +} + +type point506 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int8 +} + +//go:linkname cdemo506 C.demo506 +func cdemo506(a point506) point506 + +func demo506(a point506) point506 { + return a +} + +func init() { + a := point506{1, 2, 3, 4} + assert("cdemo506\000", cdemo506(a) == a) + assert("demo506\000", demo506(a) == a) +} + +type point507 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo507 C.demo507 +func cdemo507(a point507) point507 + +func demo507(a point507) point507 { + return a +} + +func init() { + a := point507{1, 2, 3, 4, 5} + assert("cdemo507\000", cdemo507(a) == a) + assert("demo507\000", demo507(a) == a) +} + +type point508 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo508 C.demo508 +func cdemo508(a point508) point508 + +func demo508(a point508) point508 { + return a +} + +func init() { + a := point508{1, 2, 3, 4, 5} + assert("cdemo508\000", cdemo508(a) == a) + assert("demo508\000", demo508(a) == a) +} + +type point509 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo509 C.demo509 +func cdemo509(a point509) point509 + +func demo509(a point509) point509 { + return a +} + +func init() { + a := point509{1, 2, 3, 4, 5} + assert("cdemo509\000", cdemo509(a) == a) + assert("demo509\000", demo509(a) == a) +} + +type point510 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo510 C.demo510 +func cdemo510(a point510) point510 + +func demo510(a point510) point510 { + return a +} + +func init() { + a := point510{1, 2, 3, 4, 5} + assert("cdemo510\000", cdemo510(a) == a) + assert("demo510\000", demo510(a) == a) +} + +type point511 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int16 +} + +//go:linkname cdemo511 C.demo511 +func cdemo511(a point511) point511 + +func demo511(a point511) point511 { + return a +} + +func init() { + a := point511{1, 2, 3, 4} + assert("cdemo511\000", cdemo511(a) == a) + assert("demo511\000", demo511(a) == a) +} + +type point512 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo512 C.demo512 +func cdemo512(a point512) point512 + +func demo512(a point512) point512 { + return a +} + +func init() { + a := point512{1, 2, 3, 4, 5} + assert("cdemo512\000", cdemo512(a) == a) + assert("demo512\000", demo512(a) == a) +} + +type point513 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo513 C.demo513 +func cdemo513(a point513) point513 + +func demo513(a point513) point513 { + return a +} + +func init() { + a := point513{1, 2, 3, 4, 5} + assert("cdemo513\000", cdemo513(a) == a) + assert("demo513\000", demo513(a) == a) +} + +type point514 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo514 C.demo514 +func cdemo514(a point514) point514 + +func demo514(a point514) point514 { + return a +} + +func init() { + a := point514{1, 2, 3, 4, 5} + assert("cdemo514\000", cdemo514(a) == a) + assert("demo514\000", demo514(a) == a) +} + +type point515 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo515 C.demo515 +func cdemo515(a point515) point515 + +func demo515(a point515) point515 { + return a +} + +func init() { + a := point515{1, 2, 3, 4, 5} + assert("cdemo515\000", cdemo515(a) == a) + assert("demo515\000", demo515(a) == a) +} + +type point516 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int32 +} + +//go:linkname cdemo516 C.demo516 +func cdemo516(a point516) point516 + +func demo516(a point516) point516 { + return a +} + +func init() { + a := point516{1, 2, 3, 4} + assert("cdemo516\000", cdemo516(a) == a) + assert("demo516\000", demo516(a) == a) +} + +type point517 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo517 C.demo517 +func cdemo517(a point517) point517 + +func demo517(a point517) point517 { + return a +} + +func init() { + a := point517{1, 2, 3, 4, 5} + assert("cdemo517\000", cdemo517(a) == a) + assert("demo517\000", demo517(a) == a) +} + +type point518 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo518 C.demo518 +func cdemo518(a point518) point518 + +func demo518(a point518) point518 { + return a +} + +func init() { + a := point518{1, 2, 3, 4, 5} + assert("cdemo518\000", cdemo518(a) == a) + assert("demo518\000", demo518(a) == a) +} + +type point519 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo519 C.demo519 +func cdemo519(a point519) point519 + +func demo519(a point519) point519 { + return a +} + +func init() { + a := point519{1, 2, 3, 4, 5} + assert("cdemo519\000", cdemo519(a) == a) + assert("demo519\000", demo519(a) == a) +} + +type point520 struct { + x0 int16 + x1 float32 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo520 C.demo520 +func cdemo520(a point520) point520 + +func demo520(a point520) point520 { + return a +} + +func init() { + a := point520{1, 2, 3, 4, 5} + assert("cdemo520\000", cdemo520(a) == a) + assert("demo520\000", demo520(a) == a) +} + +type point521 struct { + x0 int16 + x1 float32 + x2 int32 + x3 float32 +} + +//go:linkname cdemo521 C.demo521 +func cdemo521(a point521) point521 + +func demo521(a point521) point521 { + return a +} + +func init() { + a := point521{1, 2, 3, 4} + assert("cdemo521\000", cdemo521(a) == a) + assert("demo521\000", demo521(a) == a) +} + +type point522 struct { + x0 int16 + x1 float32 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo522 C.demo522 +func cdemo522(a point522) point522 + +func demo522(a point522) point522 { + return a +} + +func init() { + a := point522{1, 2, 3, 4, 5} + assert("cdemo522\000", cdemo522(a) == a) + assert("demo522\000", demo522(a) == a) +} + +type point523 struct { + x0 int16 + x1 float32 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo523 C.demo523 +func cdemo523(a point523) point523 + +func demo523(a point523) point523 { + return a +} + +func init() { + a := point523{1, 2, 3, 4, 5} + assert("cdemo523\000", cdemo523(a) == a) + assert("demo523\000", demo523(a) == a) +} + +type point524 struct { + x0 int16 + x1 float32 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo524 C.demo524 +func cdemo524(a point524) point524 + +func demo524(a point524) point524 { + return a +} + +func init() { + a := point524{1, 2, 3, 4, 5} + assert("cdemo524\000", cdemo524(a) == a) + assert("demo524\000", demo524(a) == a) +} + +type point525 struct { + x0 int16 + x1 float32 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo525 C.demo525 +func cdemo525(a point525) point525 + +func demo525(a point525) point525 { + return a +} + +func init() { + a := point525{1, 2, 3, 4, 5} + assert("cdemo525\000", cdemo525(a) == a) + assert("demo525\000", demo525(a) == a) +} + +type point526 struct { + x0 int16 + x1 float32 + x2 float32 +} + +//go:linkname cdemo526 C.demo526 +func cdemo526(a point526) point526 + +func demo526(a point526) point526 { + return a +} + +func init() { + a := point526{1, 2, 3} + assert("cdemo526\000", cdemo526(a) == a) + assert("demo526\000", demo526(a) == a) +} + +type point527 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int8 +} + +//go:linkname cdemo527 C.demo527 +func cdemo527(a point527) point527 + +func demo527(a point527) point527 { + return a +} + +func init() { + a := point527{1, 2, 3, 4} + assert("cdemo527\000", cdemo527(a) == a) + assert("demo527\000", demo527(a) == a) +} + +type point528 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo528 C.demo528 +func cdemo528(a point528) point528 + +func demo528(a point528) point528 { + return a +} + +func init() { + a := point528{1, 2, 3, 4, 5} + assert("cdemo528\000", cdemo528(a) == a) + assert("demo528\000", demo528(a) == a) +} + +type point529 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo529 C.demo529 +func cdemo529(a point529) point529 + +func demo529(a point529) point529 { + return a +} + +func init() { + a := point529{1, 2, 3, 4, 5} + assert("cdemo529\000", cdemo529(a) == a) + assert("demo529\000", demo529(a) == a) +} + +type point530 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo530 C.demo530 +func cdemo530(a point530) point530 + +func demo530(a point530) point530 { + return a +} + +func init() { + a := point530{1, 2, 3, 4, 5} + assert("cdemo530\000", cdemo530(a) == a) + assert("demo530\000", demo530(a) == a) +} + +type point531 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo531 C.demo531 +func cdemo531(a point531) point531 + +func demo531(a point531) point531 { + return a +} + +func init() { + a := point531{1, 2, 3, 4, 5} + assert("cdemo531\000", cdemo531(a) == a) + assert("demo531\000", demo531(a) == a) +} + +type point532 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int16 +} + +//go:linkname cdemo532 C.demo532 +func cdemo532(a point532) point532 + +func demo532(a point532) point532 { + return a +} + +func init() { + a := point532{1, 2, 3, 4} + assert("cdemo532\000", cdemo532(a) == a) + assert("demo532\000", demo532(a) == a) +} + +type point533 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo533 C.demo533 +func cdemo533(a point533) point533 + +func demo533(a point533) point533 { + return a +} + +func init() { + a := point533{1, 2, 3, 4, 5} + assert("cdemo533\000", cdemo533(a) == a) + assert("demo533\000", demo533(a) == a) +} + +type point534 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo534 C.demo534 +func cdemo534(a point534) point534 + +func demo534(a point534) point534 { + return a +} + +func init() { + a := point534{1, 2, 3, 4, 5} + assert("cdemo534\000", cdemo534(a) == a) + assert("demo534\000", demo534(a) == a) +} + +type point535 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo535 C.demo535 +func cdemo535(a point535) point535 + +func demo535(a point535) point535 { + return a +} + +func init() { + a := point535{1, 2, 3, 4, 5} + assert("cdemo535\000", cdemo535(a) == a) + assert("demo535\000", demo535(a) == a) +} + +type point536 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo536 C.demo536 +func cdemo536(a point536) point536 + +func demo536(a point536) point536 { + return a +} + +func init() { + a := point536{1, 2, 3, 4, 5} + assert("cdemo536\000", cdemo536(a) == a) + assert("demo536\000", demo536(a) == a) +} + +type point537 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int32 +} + +//go:linkname cdemo537 C.demo537 +func cdemo537(a point537) point537 + +func demo537(a point537) point537 { + return a +} + +func init() { + a := point537{1, 2, 3, 4} + assert("cdemo537\000", cdemo537(a) == a) + assert("demo537\000", demo537(a) == a) +} + +type point538 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo538 C.demo538 +func cdemo538(a point538) point538 + +func demo538(a point538) point538 { + return a +} + +func init() { + a := point538{1, 2, 3, 4, 5} + assert("cdemo538\000", cdemo538(a) == a) + assert("demo538\000", demo538(a) == a) +} + +type point539 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo539 C.demo539 +func cdemo539(a point539) point539 + +func demo539(a point539) point539 { + return a +} + +func init() { + a := point539{1, 2, 3, 4, 5} + assert("cdemo539\000", cdemo539(a) == a) + assert("demo539\000", demo539(a) == a) +} + +type point540 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo540 C.demo540 +func cdemo540(a point540) point540 + +func demo540(a point540) point540 { + return a +} + +func init() { + a := point540{1, 2, 3, 4, 5} + assert("cdemo540\000", cdemo540(a) == a) + assert("demo540\000", demo540(a) == a) +} + +type point541 struct { + x0 int16 + x1 float32 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo541 C.demo541 +func cdemo541(a point541) point541 + +func demo541(a point541) point541 { + return a +} + +func init() { + a := point541{1, 2, 3, 4, 5} + assert("cdemo541\000", cdemo541(a) == a) + assert("demo541\000", demo541(a) == a) +} + +type point542 struct { + x0 int16 + x1 float32 + x2 float32 + x3 float32 +} + +//go:linkname cdemo542 C.demo542 +func cdemo542(a point542) point542 + +func demo542(a point542) point542 { + return a +} + +func init() { + a := point542{1, 2, 3, 4} + assert("cdemo542\000", cdemo542(a) == a) + assert("demo542\000", demo542(a) == a) +} + +type point543 struct { + x0 int16 + x1 float32 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo543 C.demo543 +func cdemo543(a point543) point543 + +func demo543(a point543) point543 { + return a +} + +func init() { + a := point543{1, 2, 3, 4, 5} + assert("cdemo543\000", cdemo543(a) == a) + assert("demo543\000", demo543(a) == a) +} + +type point544 struct { + x0 int16 + x1 float32 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo544 C.demo544 +func cdemo544(a point544) point544 + +func demo544(a point544) point544 { + return a +} + +func init() { + a := point544{1, 2, 3, 4, 5} + assert("cdemo544\000", cdemo544(a) == a) + assert("demo544\000", demo544(a) == a) +} + +type point545 struct { + x0 int16 + x1 float32 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo545 C.demo545 +func cdemo545(a point545) point545 + +func demo545(a point545) point545 { + return a +} + +func init() { + a := point545{1, 2, 3, 4, 5} + assert("cdemo545\000", cdemo545(a) == a) + assert("demo545\000", demo545(a) == a) +} + +type point546 struct { + x0 int16 + x1 float32 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo546 C.demo546 +func cdemo546(a point546) point546 + +func demo546(a point546) point546 { + return a +} + +func init() { + a := point546{1, 2, 3, 4, 5} + assert("cdemo546\000", cdemo546(a) == a) + assert("demo546\000", demo546(a) == a) +} + +type point547 struct { + x0 int32 + x1 int8 + x2 int8 +} + +//go:linkname cdemo547 C.demo547 +func cdemo547(a point547) point547 + +func demo547(a point547) point547 { + return a +} + +func init() { + a := point547{1, 2, 3} + assert("cdemo547\000", cdemo547(a) == a) + assert("demo547\000", demo547(a) == a) +} + +type point548 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int8 +} + +//go:linkname cdemo548 C.demo548 +func cdemo548(a point548) point548 + +func demo548(a point548) point548 { + return a +} + +func init() { + a := point548{1, 2, 3, 4} + assert("cdemo548\000", cdemo548(a) == a) + assert("demo548\000", demo548(a) == a) +} + +type point549 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo549 C.demo549 +func cdemo549(a point549) point549 + +func demo549(a point549) point549 { + return a +} + +func init() { + a := point549{1, 2, 3, 4, 5} + assert("cdemo549\000", cdemo549(a) == a) + assert("demo549\000", demo549(a) == a) +} + +type point550 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo550 C.demo550 +func cdemo550(a point550) point550 + +func demo550(a point550) point550 { + return a +} + +func init() { + a := point550{1, 2, 3, 4, 5} + assert("cdemo550\000", cdemo550(a) == a) + assert("demo550\000", demo550(a) == a) +} + +type point551 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo551 C.demo551 +func cdemo551(a point551) point551 + +func demo551(a point551) point551 { + return a +} + +func init() { + a := point551{1, 2, 3, 4, 5} + assert("cdemo551\000", cdemo551(a) == a) + assert("demo551\000", demo551(a) == a) +} + +type point552 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo552 C.demo552 +func cdemo552(a point552) point552 + +func demo552(a point552) point552 { + return a +} + +func init() { + a := point552{1, 2, 3, 4, 5} + assert("cdemo552\000", cdemo552(a) == a) + assert("demo552\000", demo552(a) == a) +} + +type point553 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int16 +} + +//go:linkname cdemo553 C.demo553 +func cdemo553(a point553) point553 + +func demo553(a point553) point553 { + return a +} + +func init() { + a := point553{1, 2, 3, 4} + assert("cdemo553\000", cdemo553(a) == a) + assert("demo553\000", demo553(a) == a) +} + +type point554 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo554 C.demo554 +func cdemo554(a point554) point554 + +func demo554(a point554) point554 { + return a +} + +func init() { + a := point554{1, 2, 3, 4, 5} + assert("cdemo554\000", cdemo554(a) == a) + assert("demo554\000", demo554(a) == a) +} + +type point555 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo555 C.demo555 +func cdemo555(a point555) point555 + +func demo555(a point555) point555 { + return a +} + +func init() { + a := point555{1, 2, 3, 4, 5} + assert("cdemo555\000", cdemo555(a) == a) + assert("demo555\000", demo555(a) == a) +} + +type point556 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo556 C.demo556 +func cdemo556(a point556) point556 + +func demo556(a point556) point556 { + return a +} + +func init() { + a := point556{1, 2, 3, 4, 5} + assert("cdemo556\000", cdemo556(a) == a) + assert("demo556\000", demo556(a) == a) +} + +type point557 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo557 C.demo557 +func cdemo557(a point557) point557 + +func demo557(a point557) point557 { + return a +} + +func init() { + a := point557{1, 2, 3, 4, 5} + assert("cdemo557\000", cdemo557(a) == a) + assert("demo557\000", demo557(a) == a) +} + +type point558 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int32 +} + +//go:linkname cdemo558 C.demo558 +func cdemo558(a point558) point558 + +func demo558(a point558) point558 { + return a +} + +func init() { + a := point558{1, 2, 3, 4} + assert("cdemo558\000", cdemo558(a) == a) + assert("demo558\000", demo558(a) == a) +} + +type point559 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo559 C.demo559 +func cdemo559(a point559) point559 + +func demo559(a point559) point559 { + return a +} + +func init() { + a := point559{1, 2, 3, 4, 5} + assert("cdemo559\000", cdemo559(a) == a) + assert("demo559\000", demo559(a) == a) +} + +type point560 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo560 C.demo560 +func cdemo560(a point560) point560 + +func demo560(a point560) point560 { + return a +} + +func init() { + a := point560{1, 2, 3, 4, 5} + assert("cdemo560\000", cdemo560(a) == a) + assert("demo560\000", demo560(a) == a) +} + +type point561 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo561 C.demo561 +func cdemo561(a point561) point561 + +func demo561(a point561) point561 { + return a +} + +func init() { + a := point561{1, 2, 3, 4, 5} + assert("cdemo561\000", cdemo561(a) == a) + assert("demo561\000", demo561(a) == a) +} + +type point562 struct { + x0 int32 + x1 int8 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo562 C.demo562 +func cdemo562(a point562) point562 + +func demo562(a point562) point562 { + return a +} + +func init() { + a := point562{1, 2, 3, 4, 5} + assert("cdemo562\000", cdemo562(a) == a) + assert("demo562\000", demo562(a) == a) +} + +type point563 struct { + x0 int32 + x1 int8 + x2 int8 + x3 float32 +} + +//go:linkname cdemo563 C.demo563 +func cdemo563(a point563) point563 + +func demo563(a point563) point563 { + return a +} + +func init() { + a := point563{1, 2, 3, 4} + assert("cdemo563\000", cdemo563(a) == a) + assert("demo563\000", demo563(a) == a) +} + +type point564 struct { + x0 int32 + x1 int8 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo564 C.demo564 +func cdemo564(a point564) point564 + +func demo564(a point564) point564 { + return a +} + +func init() { + a := point564{1, 2, 3, 4, 5} + assert("cdemo564\000", cdemo564(a) == a) + assert("demo564\000", demo564(a) == a) +} + +type point565 struct { + x0 int32 + x1 int8 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo565 C.demo565 +func cdemo565(a point565) point565 + +func demo565(a point565) point565 { + return a +} + +func init() { + a := point565{1, 2, 3, 4, 5} + assert("cdemo565\000", cdemo565(a) == a) + assert("demo565\000", demo565(a) == a) +} + +type point566 struct { + x0 int32 + x1 int8 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo566 C.demo566 +func cdemo566(a point566) point566 + +func demo566(a point566) point566 { + return a +} + +func init() { + a := point566{1, 2, 3, 4, 5} + assert("cdemo566\000", cdemo566(a) == a) + assert("demo566\000", demo566(a) == a) +} + +type point567 struct { + x0 int32 + x1 int8 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo567 C.demo567 +func cdemo567(a point567) point567 + +func demo567(a point567) point567 { + return a +} + +func init() { + a := point567{1, 2, 3, 4, 5} + assert("cdemo567\000", cdemo567(a) == a) + assert("demo567\000", demo567(a) == a) +} + +type point568 struct { + x0 int32 + x1 int8 + x2 int16 +} + +//go:linkname cdemo568 C.demo568 +func cdemo568(a point568) point568 + +func demo568(a point568) point568 { + return a +} + +func init() { + a := point568{1, 2, 3} + assert("cdemo568\000", cdemo568(a) == a) + assert("demo568\000", demo568(a) == a) +} + +type point569 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int8 +} + +//go:linkname cdemo569 C.demo569 +func cdemo569(a point569) point569 + +func demo569(a point569) point569 { + return a +} + +func init() { + a := point569{1, 2, 3, 4} + assert("cdemo569\000", cdemo569(a) == a) + assert("demo569\000", demo569(a) == a) +} + +type point570 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo570 C.demo570 +func cdemo570(a point570) point570 + +func demo570(a point570) point570 { + return a +} + +func init() { + a := point570{1, 2, 3, 4, 5} + assert("cdemo570\000", cdemo570(a) == a) + assert("demo570\000", demo570(a) == a) +} + +type point571 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo571 C.demo571 +func cdemo571(a point571) point571 + +func demo571(a point571) point571 { + return a +} + +func init() { + a := point571{1, 2, 3, 4, 5} + assert("cdemo571\000", cdemo571(a) == a) + assert("demo571\000", demo571(a) == a) +} + +type point572 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo572 C.demo572 +func cdemo572(a point572) point572 + +func demo572(a point572) point572 { + return a +} + +func init() { + a := point572{1, 2, 3, 4, 5} + assert("cdemo572\000", cdemo572(a) == a) + assert("demo572\000", demo572(a) == a) +} + +type point573 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo573 C.demo573 +func cdemo573(a point573) point573 + +func demo573(a point573) point573 { + return a +} + +func init() { + a := point573{1, 2, 3, 4, 5} + assert("cdemo573\000", cdemo573(a) == a) + assert("demo573\000", demo573(a) == a) +} + +type point574 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int16 +} + +//go:linkname cdemo574 C.demo574 +func cdemo574(a point574) point574 + +func demo574(a point574) point574 { + return a +} + +func init() { + a := point574{1, 2, 3, 4} + assert("cdemo574\000", cdemo574(a) == a) + assert("demo574\000", demo574(a) == a) +} + +type point575 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo575 C.demo575 +func cdemo575(a point575) point575 + +func demo575(a point575) point575 { + return a +} + +func init() { + a := point575{1, 2, 3, 4, 5} + assert("cdemo575\000", cdemo575(a) == a) + assert("demo575\000", demo575(a) == a) +} + +type point576 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo576 C.demo576 +func cdemo576(a point576) point576 + +func demo576(a point576) point576 { + return a +} + +func init() { + a := point576{1, 2, 3, 4, 5} + assert("cdemo576\000", cdemo576(a) == a) + assert("demo576\000", demo576(a) == a) +} + +type point577 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo577 C.demo577 +func cdemo577(a point577) point577 + +func demo577(a point577) point577 { + return a +} + +func init() { + a := point577{1, 2, 3, 4, 5} + assert("cdemo577\000", cdemo577(a) == a) + assert("demo577\000", demo577(a) == a) +} + +type point578 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo578 C.demo578 +func cdemo578(a point578) point578 + +func demo578(a point578) point578 { + return a +} + +func init() { + a := point578{1, 2, 3, 4, 5} + assert("cdemo578\000", cdemo578(a) == a) + assert("demo578\000", demo578(a) == a) +} + +type point579 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int32 +} + +//go:linkname cdemo579 C.demo579 +func cdemo579(a point579) point579 + +func demo579(a point579) point579 { + return a +} + +func init() { + a := point579{1, 2, 3, 4} + assert("cdemo579\000", cdemo579(a) == a) + assert("demo579\000", demo579(a) == a) +} + +type point580 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo580 C.demo580 +func cdemo580(a point580) point580 + +func demo580(a point580) point580 { + return a +} + +func init() { + a := point580{1, 2, 3, 4, 5} + assert("cdemo580\000", cdemo580(a) == a) + assert("demo580\000", demo580(a) == a) +} + +type point581 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo581 C.demo581 +func cdemo581(a point581) point581 + +func demo581(a point581) point581 { + return a +} + +func init() { + a := point581{1, 2, 3, 4, 5} + assert("cdemo581\000", cdemo581(a) == a) + assert("demo581\000", demo581(a) == a) +} + +type point582 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo582 C.demo582 +func cdemo582(a point582) point582 + +func demo582(a point582) point582 { + return a +} + +func init() { + a := point582{1, 2, 3, 4, 5} + assert("cdemo582\000", cdemo582(a) == a) + assert("demo582\000", demo582(a) == a) +} + +type point583 struct { + x0 int32 + x1 int8 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo583 C.demo583 +func cdemo583(a point583) point583 + +func demo583(a point583) point583 { + return a +} + +func init() { + a := point583{1, 2, 3, 4, 5} + assert("cdemo583\000", cdemo583(a) == a) + assert("demo583\000", demo583(a) == a) +} + +type point584 struct { + x0 int32 + x1 int8 + x2 int16 + x3 float32 +} + +//go:linkname cdemo584 C.demo584 +func cdemo584(a point584) point584 + +func demo584(a point584) point584 { + return a +} + +func init() { + a := point584{1, 2, 3, 4} + assert("cdemo584\000", cdemo584(a) == a) + assert("demo584\000", demo584(a) == a) +} + +type point585 struct { + x0 int32 + x1 int8 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo585 C.demo585 +func cdemo585(a point585) point585 + +func demo585(a point585) point585 { + return a +} + +func init() { + a := point585{1, 2, 3, 4, 5} + assert("cdemo585\000", cdemo585(a) == a) + assert("demo585\000", demo585(a) == a) +} + +type point586 struct { + x0 int32 + x1 int8 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo586 C.demo586 +func cdemo586(a point586) point586 + +func demo586(a point586) point586 { + return a +} + +func init() { + a := point586{1, 2, 3, 4, 5} + assert("cdemo586\000", cdemo586(a) == a) + assert("demo586\000", demo586(a) == a) +} + +type point587 struct { + x0 int32 + x1 int8 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo587 C.demo587 +func cdemo587(a point587) point587 + +func demo587(a point587) point587 { + return a +} + +func init() { + a := point587{1, 2, 3, 4, 5} + assert("cdemo587\000", cdemo587(a) == a) + assert("demo587\000", demo587(a) == a) +} + +type point588 struct { + x0 int32 + x1 int8 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo588 C.demo588 +func cdemo588(a point588) point588 + +func demo588(a point588) point588 { + return a +} + +func init() { + a := point588{1, 2, 3, 4, 5} + assert("cdemo588\000", cdemo588(a) == a) + assert("demo588\000", demo588(a) == a) +} + +type point589 struct { + x0 int32 + x1 int8 + x2 int32 +} + +//go:linkname cdemo589 C.demo589 +func cdemo589(a point589) point589 + +func demo589(a point589) point589 { + return a +} + +func init() { + a := point589{1, 2, 3} + assert("cdemo589\000", cdemo589(a) == a) + assert("demo589\000", demo589(a) == a) +} + +type point590 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int8 +} + +//go:linkname cdemo590 C.demo590 +func cdemo590(a point590) point590 + +func demo590(a point590) point590 { + return a +} + +func init() { + a := point590{1, 2, 3, 4} + assert("cdemo590\000", cdemo590(a) == a) + assert("demo590\000", demo590(a) == a) +} + +type point591 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo591 C.demo591 +func cdemo591(a point591) point591 + +func demo591(a point591) point591 { + return a +} + +func init() { + a := point591{1, 2, 3, 4, 5} + assert("cdemo591\000", cdemo591(a) == a) + assert("demo591\000", demo591(a) == a) +} + +type point592 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo592 C.demo592 +func cdemo592(a point592) point592 + +func demo592(a point592) point592 { + return a +} + +func init() { + a := point592{1, 2, 3, 4, 5} + assert("cdemo592\000", cdemo592(a) == a) + assert("demo592\000", demo592(a) == a) +} + +type point593 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo593 C.demo593 +func cdemo593(a point593) point593 + +func demo593(a point593) point593 { + return a +} + +func init() { + a := point593{1, 2, 3, 4, 5} + assert("cdemo593\000", cdemo593(a) == a) + assert("demo593\000", demo593(a) == a) +} + +type point594 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo594 C.demo594 +func cdemo594(a point594) point594 + +func demo594(a point594) point594 { + return a +} + +func init() { + a := point594{1, 2, 3, 4, 5} + assert("cdemo594\000", cdemo594(a) == a) + assert("demo594\000", demo594(a) == a) +} + +type point595 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int16 +} + +//go:linkname cdemo595 C.demo595 +func cdemo595(a point595) point595 + +func demo595(a point595) point595 { + return a +} + +func init() { + a := point595{1, 2, 3, 4} + assert("cdemo595\000", cdemo595(a) == a) + assert("demo595\000", demo595(a) == a) +} + +type point596 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo596 C.demo596 +func cdemo596(a point596) point596 + +func demo596(a point596) point596 { + return a +} + +func init() { + a := point596{1, 2, 3, 4, 5} + assert("cdemo596\000", cdemo596(a) == a) + assert("demo596\000", demo596(a) == a) +} + +type point597 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo597 C.demo597 +func cdemo597(a point597) point597 + +func demo597(a point597) point597 { + return a +} + +func init() { + a := point597{1, 2, 3, 4, 5} + assert("cdemo597\000", cdemo597(a) == a) + assert("demo597\000", demo597(a) == a) +} + +type point598 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo598 C.demo598 +func cdemo598(a point598) point598 + +func demo598(a point598) point598 { + return a +} + +func init() { + a := point598{1, 2, 3, 4, 5} + assert("cdemo598\000", cdemo598(a) == a) + assert("demo598\000", demo598(a) == a) +} + +type point599 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo599 C.demo599 +func cdemo599(a point599) point599 + +func demo599(a point599) point599 { + return a +} + +func init() { + a := point599{1, 2, 3, 4, 5} + assert("cdemo599\000", cdemo599(a) == a) + assert("demo599\000", demo599(a) == a) +} + +type point600 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int32 +} + +//go:linkname cdemo600 C.demo600 +func cdemo600(a point600) point600 + +func demo600(a point600) point600 { + return a +} + +func init() { + a := point600{1, 2, 3, 4} + assert("cdemo600\000", cdemo600(a) == a) + assert("demo600\000", demo600(a) == a) +} + +type point601 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo601 C.demo601 +func cdemo601(a point601) point601 + +func demo601(a point601) point601 { + return a +} + +func init() { + a := point601{1, 2, 3, 4, 5} + assert("cdemo601\000", cdemo601(a) == a) + assert("demo601\000", demo601(a) == a) +} + +type point602 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo602 C.demo602 +func cdemo602(a point602) point602 + +func demo602(a point602) point602 { + return a +} + +func init() { + a := point602{1, 2, 3, 4, 5} + assert("cdemo602\000", cdemo602(a) == a) + assert("demo602\000", demo602(a) == a) +} + +type point603 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo603 C.demo603 +func cdemo603(a point603) point603 + +func demo603(a point603) point603 { + return a +} + +func init() { + a := point603{1, 2, 3, 4, 5} + assert("cdemo603\000", cdemo603(a) == a) + assert("demo603\000", demo603(a) == a) +} + +type point604 struct { + x0 int32 + x1 int8 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo604 C.demo604 +func cdemo604(a point604) point604 + +func demo604(a point604) point604 { + return a +} + +func init() { + a := point604{1, 2, 3, 4, 5} + assert("cdemo604\000", cdemo604(a) == a) + assert("demo604\000", demo604(a) == a) +} + +type point605 struct { + x0 int32 + x1 int8 + x2 int32 + x3 float32 +} + +//go:linkname cdemo605 C.demo605 +func cdemo605(a point605) point605 + +func demo605(a point605) point605 { + return a +} + +func init() { + a := point605{1, 2, 3, 4} + assert("cdemo605\000", cdemo605(a) == a) + assert("demo605\000", demo605(a) == a) +} + +type point606 struct { + x0 int32 + x1 int8 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo606 C.demo606 +func cdemo606(a point606) point606 + +func demo606(a point606) point606 { + return a +} + +func init() { + a := point606{1, 2, 3, 4, 5} + assert("cdemo606\000", cdemo606(a) == a) + assert("demo606\000", demo606(a) == a) +} + +type point607 struct { + x0 int32 + x1 int8 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo607 C.demo607 +func cdemo607(a point607) point607 + +func demo607(a point607) point607 { + return a +} + +func init() { + a := point607{1, 2, 3, 4, 5} + assert("cdemo607\000", cdemo607(a) == a) + assert("demo607\000", demo607(a) == a) +} + +type point608 struct { + x0 int32 + x1 int8 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo608 C.demo608 +func cdemo608(a point608) point608 + +func demo608(a point608) point608 { + return a +} + +func init() { + a := point608{1, 2, 3, 4, 5} + assert("cdemo608\000", cdemo608(a) == a) + assert("demo608\000", demo608(a) == a) +} + +type point609 struct { + x0 int32 + x1 int8 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo609 C.demo609 +func cdemo609(a point609) point609 + +func demo609(a point609) point609 { + return a +} + +func init() { + a := point609{1, 2, 3, 4, 5} + assert("cdemo609\000", cdemo609(a) == a) + assert("demo609\000", demo609(a) == a) +} + +type point610 struct { + x0 int32 + x1 int8 + x2 float32 +} + +//go:linkname cdemo610 C.demo610 +func cdemo610(a point610) point610 + +func demo610(a point610) point610 { + return a +} + +func init() { + a := point610{1, 2, 3} + assert("cdemo610\000", cdemo610(a) == a) + assert("demo610\000", demo610(a) == a) +} + +type point611 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int8 +} + +//go:linkname cdemo611 C.demo611 +func cdemo611(a point611) point611 + +func demo611(a point611) point611 { + return a +} + +func init() { + a := point611{1, 2, 3, 4} + assert("cdemo611\000", cdemo611(a) == a) + assert("demo611\000", demo611(a) == a) +} + +type point612 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo612 C.demo612 +func cdemo612(a point612) point612 + +func demo612(a point612) point612 { + return a +} + +func init() { + a := point612{1, 2, 3, 4, 5} + assert("cdemo612\000", cdemo612(a) == a) + assert("demo612\000", demo612(a) == a) +} + +type point613 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo613 C.demo613 +func cdemo613(a point613) point613 + +func demo613(a point613) point613 { + return a +} + +func init() { + a := point613{1, 2, 3, 4, 5} + assert("cdemo613\000", cdemo613(a) == a) + assert("demo613\000", demo613(a) == a) +} + +type point614 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo614 C.demo614 +func cdemo614(a point614) point614 + +func demo614(a point614) point614 { + return a +} + +func init() { + a := point614{1, 2, 3, 4, 5} + assert("cdemo614\000", cdemo614(a) == a) + assert("demo614\000", demo614(a) == a) +} + +type point615 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo615 C.demo615 +func cdemo615(a point615) point615 + +func demo615(a point615) point615 { + return a +} + +func init() { + a := point615{1, 2, 3, 4, 5} + assert("cdemo615\000", cdemo615(a) == a) + assert("demo615\000", demo615(a) == a) +} + +type point616 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int16 +} + +//go:linkname cdemo616 C.demo616 +func cdemo616(a point616) point616 + +func demo616(a point616) point616 { + return a +} + +func init() { + a := point616{1, 2, 3, 4} + assert("cdemo616\000", cdemo616(a) == a) + assert("demo616\000", demo616(a) == a) +} + +type point617 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo617 C.demo617 +func cdemo617(a point617) point617 + +func demo617(a point617) point617 { + return a +} + +func init() { + a := point617{1, 2, 3, 4, 5} + assert("cdemo617\000", cdemo617(a) == a) + assert("demo617\000", demo617(a) == a) +} + +type point618 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo618 C.demo618 +func cdemo618(a point618) point618 + +func demo618(a point618) point618 { + return a +} + +func init() { + a := point618{1, 2, 3, 4, 5} + assert("cdemo618\000", cdemo618(a) == a) + assert("demo618\000", demo618(a) == a) +} + +type point619 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo619 C.demo619 +func cdemo619(a point619) point619 + +func demo619(a point619) point619 { + return a +} + +func init() { + a := point619{1, 2, 3, 4, 5} + assert("cdemo619\000", cdemo619(a) == a) + assert("demo619\000", demo619(a) == a) +} + +type point620 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo620 C.demo620 +func cdemo620(a point620) point620 + +func demo620(a point620) point620 { + return a +} + +func init() { + a := point620{1, 2, 3, 4, 5} + assert("cdemo620\000", cdemo620(a) == a) + assert("demo620\000", demo620(a) == a) +} + +type point621 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int32 +} + +//go:linkname cdemo621 C.demo621 +func cdemo621(a point621) point621 + +func demo621(a point621) point621 { + return a +} + +func init() { + a := point621{1, 2, 3, 4} + assert("cdemo621\000", cdemo621(a) == a) + assert("demo621\000", demo621(a) == a) +} + +type point622 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo622 C.demo622 +func cdemo622(a point622) point622 + +func demo622(a point622) point622 { + return a +} + +func init() { + a := point622{1, 2, 3, 4, 5} + assert("cdemo622\000", cdemo622(a) == a) + assert("demo622\000", demo622(a) == a) +} + +type point623 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo623 C.demo623 +func cdemo623(a point623) point623 + +func demo623(a point623) point623 { + return a +} + +func init() { + a := point623{1, 2, 3, 4, 5} + assert("cdemo623\000", cdemo623(a) == a) + assert("demo623\000", demo623(a) == a) +} + +type point624 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo624 C.demo624 +func cdemo624(a point624) point624 + +func demo624(a point624) point624 { + return a +} + +func init() { + a := point624{1, 2, 3, 4, 5} + assert("cdemo624\000", cdemo624(a) == a) + assert("demo624\000", demo624(a) == a) +} + +type point625 struct { + x0 int32 + x1 int8 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo625 C.demo625 +func cdemo625(a point625) point625 + +func demo625(a point625) point625 { + return a +} + +func init() { + a := point625{1, 2, 3, 4, 5} + assert("cdemo625\000", cdemo625(a) == a) + assert("demo625\000", demo625(a) == a) +} + +type point626 struct { + x0 int32 + x1 int8 + x2 float32 + x3 float32 +} + +//go:linkname cdemo626 C.demo626 +func cdemo626(a point626) point626 + +func demo626(a point626) point626 { + return a +} + +func init() { + a := point626{1, 2, 3, 4} + assert("cdemo626\000", cdemo626(a) == a) + assert("demo626\000", demo626(a) == a) +} + +type point627 struct { + x0 int32 + x1 int8 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo627 C.demo627 +func cdemo627(a point627) point627 + +func demo627(a point627) point627 { + return a +} + +func init() { + a := point627{1, 2, 3, 4, 5} + assert("cdemo627\000", cdemo627(a) == a) + assert("demo627\000", demo627(a) == a) +} + +type point628 struct { + x0 int32 + x1 int8 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo628 C.demo628 +func cdemo628(a point628) point628 + +func demo628(a point628) point628 { + return a +} + +func init() { + a := point628{1, 2, 3, 4, 5} + assert("cdemo628\000", cdemo628(a) == a) + assert("demo628\000", demo628(a) == a) +} + +type point629 struct { + x0 int32 + x1 int8 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo629 C.demo629 +func cdemo629(a point629) point629 + +func demo629(a point629) point629 { + return a +} + +func init() { + a := point629{1, 2, 3, 4, 5} + assert("cdemo629\000", cdemo629(a) == a) + assert("demo629\000", demo629(a) == a) +} + +type point630 struct { + x0 int32 + x1 int8 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo630 C.demo630 +func cdemo630(a point630) point630 + +func demo630(a point630) point630 { + return a +} + +func init() { + a := point630{1, 2, 3, 4, 5} + assert("cdemo630\000", cdemo630(a) == a) + assert("demo630\000", demo630(a) == a) +} + +type point631 struct { + x0 int32 + x1 int16 + x2 int8 +} + +//go:linkname cdemo631 C.demo631 +func cdemo631(a point631) point631 + +func demo631(a point631) point631 { + return a +} + +func init() { + a := point631{1, 2, 3} + assert("cdemo631\000", cdemo631(a) == a) + assert("demo631\000", demo631(a) == a) +} + +type point632 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int8 +} + +//go:linkname cdemo632 C.demo632 +func cdemo632(a point632) point632 + +func demo632(a point632) point632 { + return a +} + +func init() { + a := point632{1, 2, 3, 4} + assert("cdemo632\000", cdemo632(a) == a) + assert("demo632\000", demo632(a) == a) +} + +type point633 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo633 C.demo633 +func cdemo633(a point633) point633 + +func demo633(a point633) point633 { + return a +} + +func init() { + a := point633{1, 2, 3, 4, 5} + assert("cdemo633\000", cdemo633(a) == a) + assert("demo633\000", demo633(a) == a) +} + +type point634 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo634 C.demo634 +func cdemo634(a point634) point634 + +func demo634(a point634) point634 { + return a +} + +func init() { + a := point634{1, 2, 3, 4, 5} + assert("cdemo634\000", cdemo634(a) == a) + assert("demo634\000", demo634(a) == a) +} + +type point635 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo635 C.demo635 +func cdemo635(a point635) point635 + +func demo635(a point635) point635 { + return a +} + +func init() { + a := point635{1, 2, 3, 4, 5} + assert("cdemo635\000", cdemo635(a) == a) + assert("demo635\000", demo635(a) == a) +} + +type point636 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo636 C.demo636 +func cdemo636(a point636) point636 + +func demo636(a point636) point636 { + return a +} + +func init() { + a := point636{1, 2, 3, 4, 5} + assert("cdemo636\000", cdemo636(a) == a) + assert("demo636\000", demo636(a) == a) +} + +type point637 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int16 +} + +//go:linkname cdemo637 C.demo637 +func cdemo637(a point637) point637 + +func demo637(a point637) point637 { + return a +} + +func init() { + a := point637{1, 2, 3, 4} + assert("cdemo637\000", cdemo637(a) == a) + assert("demo637\000", demo637(a) == a) +} + +type point638 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo638 C.demo638 +func cdemo638(a point638) point638 + +func demo638(a point638) point638 { + return a +} + +func init() { + a := point638{1, 2, 3, 4, 5} + assert("cdemo638\000", cdemo638(a) == a) + assert("demo638\000", demo638(a) == a) +} + +type point639 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo639 C.demo639 +func cdemo639(a point639) point639 + +func demo639(a point639) point639 { + return a +} + +func init() { + a := point639{1, 2, 3, 4, 5} + assert("cdemo639\000", cdemo639(a) == a) + assert("demo639\000", demo639(a) == a) +} + +type point640 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo640 C.demo640 +func cdemo640(a point640) point640 + +func demo640(a point640) point640 { + return a +} + +func init() { + a := point640{1, 2, 3, 4, 5} + assert("cdemo640\000", cdemo640(a) == a) + assert("demo640\000", demo640(a) == a) +} + +type point641 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo641 C.demo641 +func cdemo641(a point641) point641 + +func demo641(a point641) point641 { + return a +} + +func init() { + a := point641{1, 2, 3, 4, 5} + assert("cdemo641\000", cdemo641(a) == a) + assert("demo641\000", demo641(a) == a) +} + +type point642 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int32 +} + +//go:linkname cdemo642 C.demo642 +func cdemo642(a point642) point642 + +func demo642(a point642) point642 { + return a +} + +func init() { + a := point642{1, 2, 3, 4} + assert("cdemo642\000", cdemo642(a) == a) + assert("demo642\000", demo642(a) == a) +} + +type point643 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo643 C.demo643 +func cdemo643(a point643) point643 + +func demo643(a point643) point643 { + return a +} + +func init() { + a := point643{1, 2, 3, 4, 5} + assert("cdemo643\000", cdemo643(a) == a) + assert("demo643\000", demo643(a) == a) +} + +type point644 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo644 C.demo644 +func cdemo644(a point644) point644 + +func demo644(a point644) point644 { + return a +} + +func init() { + a := point644{1, 2, 3, 4, 5} + assert("cdemo644\000", cdemo644(a) == a) + assert("demo644\000", demo644(a) == a) +} + +type point645 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo645 C.demo645 +func cdemo645(a point645) point645 + +func demo645(a point645) point645 { + return a +} + +func init() { + a := point645{1, 2, 3, 4, 5} + assert("cdemo645\000", cdemo645(a) == a) + assert("demo645\000", demo645(a) == a) +} + +type point646 struct { + x0 int32 + x1 int16 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo646 C.demo646 +func cdemo646(a point646) point646 + +func demo646(a point646) point646 { + return a +} + +func init() { + a := point646{1, 2, 3, 4, 5} + assert("cdemo646\000", cdemo646(a) == a) + assert("demo646\000", demo646(a) == a) +} + +type point647 struct { + x0 int32 + x1 int16 + x2 int8 + x3 float32 +} + +//go:linkname cdemo647 C.demo647 +func cdemo647(a point647) point647 + +func demo647(a point647) point647 { + return a +} + +func init() { + a := point647{1, 2, 3, 4} + assert("cdemo647\000", cdemo647(a) == a) + assert("demo647\000", demo647(a) == a) +} + +type point648 struct { + x0 int32 + x1 int16 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo648 C.demo648 +func cdemo648(a point648) point648 + +func demo648(a point648) point648 { + return a +} + +func init() { + a := point648{1, 2, 3, 4, 5} + assert("cdemo648\000", cdemo648(a) == a) + assert("demo648\000", demo648(a) == a) +} + +type point649 struct { + x0 int32 + x1 int16 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo649 C.demo649 +func cdemo649(a point649) point649 + +func demo649(a point649) point649 { + return a +} + +func init() { + a := point649{1, 2, 3, 4, 5} + assert("cdemo649\000", cdemo649(a) == a) + assert("demo649\000", demo649(a) == a) +} + +type point650 struct { + x0 int32 + x1 int16 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo650 C.demo650 +func cdemo650(a point650) point650 + +func demo650(a point650) point650 { + return a +} + +func init() { + a := point650{1, 2, 3, 4, 5} + assert("cdemo650\000", cdemo650(a) == a) + assert("demo650\000", demo650(a) == a) +} + +type point651 struct { + x0 int32 + x1 int16 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo651 C.demo651 +func cdemo651(a point651) point651 + +func demo651(a point651) point651 { + return a +} + +func init() { + a := point651{1, 2, 3, 4, 5} + assert("cdemo651\000", cdemo651(a) == a) + assert("demo651\000", demo651(a) == a) +} + +type point652 struct { + x0 int32 + x1 int16 + x2 int16 +} + +//go:linkname cdemo652 C.demo652 +func cdemo652(a point652) point652 + +func demo652(a point652) point652 { + return a +} + +func init() { + a := point652{1, 2, 3} + assert("cdemo652\000", cdemo652(a) == a) + assert("demo652\000", demo652(a) == a) +} + +type point653 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int8 +} + +//go:linkname cdemo653 C.demo653 +func cdemo653(a point653) point653 + +func demo653(a point653) point653 { + return a +} + +func init() { + a := point653{1, 2, 3, 4} + assert("cdemo653\000", cdemo653(a) == a) + assert("demo653\000", demo653(a) == a) +} + +type point654 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo654 C.demo654 +func cdemo654(a point654) point654 + +func demo654(a point654) point654 { + return a +} + +func init() { + a := point654{1, 2, 3, 4, 5} + assert("cdemo654\000", cdemo654(a) == a) + assert("demo654\000", demo654(a) == a) +} + +type point655 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo655 C.demo655 +func cdemo655(a point655) point655 + +func demo655(a point655) point655 { + return a +} + +func init() { + a := point655{1, 2, 3, 4, 5} + assert("cdemo655\000", cdemo655(a) == a) + assert("demo655\000", demo655(a) == a) +} + +type point656 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo656 C.demo656 +func cdemo656(a point656) point656 + +func demo656(a point656) point656 { + return a +} + +func init() { + a := point656{1, 2, 3, 4, 5} + assert("cdemo656\000", cdemo656(a) == a) + assert("demo656\000", demo656(a) == a) +} + +type point657 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo657 C.demo657 +func cdemo657(a point657) point657 + +func demo657(a point657) point657 { + return a +} + +func init() { + a := point657{1, 2, 3, 4, 5} + assert("cdemo657\000", cdemo657(a) == a) + assert("demo657\000", demo657(a) == a) +} + +type point658 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int16 +} + +//go:linkname cdemo658 C.demo658 +func cdemo658(a point658) point658 + +func demo658(a point658) point658 { + return a +} + +func init() { + a := point658{1, 2, 3, 4} + assert("cdemo658\000", cdemo658(a) == a) + assert("demo658\000", demo658(a) == a) +} + +type point659 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo659 C.demo659 +func cdemo659(a point659) point659 + +func demo659(a point659) point659 { + return a +} + +func init() { + a := point659{1, 2, 3, 4, 5} + assert("cdemo659\000", cdemo659(a) == a) + assert("demo659\000", demo659(a) == a) +} + +type point660 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo660 C.demo660 +func cdemo660(a point660) point660 + +func demo660(a point660) point660 { + return a +} + +func init() { + a := point660{1, 2, 3, 4, 5} + assert("cdemo660\000", cdemo660(a) == a) + assert("demo660\000", demo660(a) == a) +} + +type point661 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo661 C.demo661 +func cdemo661(a point661) point661 + +func demo661(a point661) point661 { + return a +} + +func init() { + a := point661{1, 2, 3, 4, 5} + assert("cdemo661\000", cdemo661(a) == a) + assert("demo661\000", demo661(a) == a) +} + +type point662 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo662 C.demo662 +func cdemo662(a point662) point662 + +func demo662(a point662) point662 { + return a +} + +func init() { + a := point662{1, 2, 3, 4, 5} + assert("cdemo662\000", cdemo662(a) == a) + assert("demo662\000", demo662(a) == a) +} + +type point663 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int32 +} + +//go:linkname cdemo663 C.demo663 +func cdemo663(a point663) point663 + +func demo663(a point663) point663 { + return a +} + +func init() { + a := point663{1, 2, 3, 4} + assert("cdemo663\000", cdemo663(a) == a) + assert("demo663\000", demo663(a) == a) +} + +type point664 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo664 C.demo664 +func cdemo664(a point664) point664 + +func demo664(a point664) point664 { + return a +} + +func init() { + a := point664{1, 2, 3, 4, 5} + assert("cdemo664\000", cdemo664(a) == a) + assert("demo664\000", demo664(a) == a) +} + +type point665 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo665 C.demo665 +func cdemo665(a point665) point665 + +func demo665(a point665) point665 { + return a +} + +func init() { + a := point665{1, 2, 3, 4, 5} + assert("cdemo665\000", cdemo665(a) == a) + assert("demo665\000", demo665(a) == a) +} + +type point666 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo666 C.demo666 +func cdemo666(a point666) point666 + +func demo666(a point666) point666 { + return a +} + +func init() { + a := point666{1, 2, 3, 4, 5} + assert("cdemo666\000", cdemo666(a) == a) + assert("demo666\000", demo666(a) == a) +} + +type point667 struct { + x0 int32 + x1 int16 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo667 C.demo667 +func cdemo667(a point667) point667 + +func demo667(a point667) point667 { + return a +} + +func init() { + a := point667{1, 2, 3, 4, 5} + assert("cdemo667\000", cdemo667(a) == a) + assert("demo667\000", demo667(a) == a) +} + +type point668 struct { + x0 int32 + x1 int16 + x2 int16 + x3 float32 +} + +//go:linkname cdemo668 C.demo668 +func cdemo668(a point668) point668 + +func demo668(a point668) point668 { + return a +} + +func init() { + a := point668{1, 2, 3, 4} + assert("cdemo668\000", cdemo668(a) == a) + assert("demo668\000", demo668(a) == a) +} + +type point669 struct { + x0 int32 + x1 int16 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo669 C.demo669 +func cdemo669(a point669) point669 + +func demo669(a point669) point669 { + return a +} + +func init() { + a := point669{1, 2, 3, 4, 5} + assert("cdemo669\000", cdemo669(a) == a) + assert("demo669\000", demo669(a) == a) +} + +type point670 struct { + x0 int32 + x1 int16 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo670 C.demo670 +func cdemo670(a point670) point670 + +func demo670(a point670) point670 { + return a +} + +func init() { + a := point670{1, 2, 3, 4, 5} + assert("cdemo670\000", cdemo670(a) == a) + assert("demo670\000", demo670(a) == a) +} + +type point671 struct { + x0 int32 + x1 int16 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo671 C.demo671 +func cdemo671(a point671) point671 + +func demo671(a point671) point671 { + return a +} + +func init() { + a := point671{1, 2, 3, 4, 5} + assert("cdemo671\000", cdemo671(a) == a) + assert("demo671\000", demo671(a) == a) +} + +type point672 struct { + x0 int32 + x1 int16 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo672 C.demo672 +func cdemo672(a point672) point672 + +func demo672(a point672) point672 { + return a +} + +func init() { + a := point672{1, 2, 3, 4, 5} + assert("cdemo672\000", cdemo672(a) == a) + assert("demo672\000", demo672(a) == a) +} + +type point673 struct { + x0 int32 + x1 int16 + x2 int32 +} + +//go:linkname cdemo673 C.demo673 +func cdemo673(a point673) point673 + +func demo673(a point673) point673 { + return a +} + +func init() { + a := point673{1, 2, 3} + assert("cdemo673\000", cdemo673(a) == a) + assert("demo673\000", demo673(a) == a) +} + +type point674 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int8 +} + +//go:linkname cdemo674 C.demo674 +func cdemo674(a point674) point674 + +func demo674(a point674) point674 { + return a +} + +func init() { + a := point674{1, 2, 3, 4} + assert("cdemo674\000", cdemo674(a) == a) + assert("demo674\000", demo674(a) == a) +} + +type point675 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo675 C.demo675 +func cdemo675(a point675) point675 + +func demo675(a point675) point675 { + return a +} + +func init() { + a := point675{1, 2, 3, 4, 5} + assert("cdemo675\000", cdemo675(a) == a) + assert("demo675\000", demo675(a) == a) +} + +type point676 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo676 C.demo676 +func cdemo676(a point676) point676 + +func demo676(a point676) point676 { + return a +} + +func init() { + a := point676{1, 2, 3, 4, 5} + assert("cdemo676\000", cdemo676(a) == a) + assert("demo676\000", demo676(a) == a) +} + +type point677 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo677 C.demo677 +func cdemo677(a point677) point677 + +func demo677(a point677) point677 { + return a +} + +func init() { + a := point677{1, 2, 3, 4, 5} + assert("cdemo677\000", cdemo677(a) == a) + assert("demo677\000", demo677(a) == a) +} + +type point678 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo678 C.demo678 +func cdemo678(a point678) point678 + +func demo678(a point678) point678 { + return a +} + +func init() { + a := point678{1, 2, 3, 4, 5} + assert("cdemo678\000", cdemo678(a) == a) + assert("demo678\000", demo678(a) == a) +} + +type point679 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int16 +} + +//go:linkname cdemo679 C.demo679 +func cdemo679(a point679) point679 + +func demo679(a point679) point679 { + return a +} + +func init() { + a := point679{1, 2, 3, 4} + assert("cdemo679\000", cdemo679(a) == a) + assert("demo679\000", demo679(a) == a) +} + +type point680 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo680 C.demo680 +func cdemo680(a point680) point680 + +func demo680(a point680) point680 { + return a +} + +func init() { + a := point680{1, 2, 3, 4, 5} + assert("cdemo680\000", cdemo680(a) == a) + assert("demo680\000", demo680(a) == a) +} + +type point681 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo681 C.demo681 +func cdemo681(a point681) point681 + +func demo681(a point681) point681 { + return a +} + +func init() { + a := point681{1, 2, 3, 4, 5} + assert("cdemo681\000", cdemo681(a) == a) + assert("demo681\000", demo681(a) == a) +} + +type point682 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo682 C.demo682 +func cdemo682(a point682) point682 + +func demo682(a point682) point682 { + return a +} + +func init() { + a := point682{1, 2, 3, 4, 5} + assert("cdemo682\000", cdemo682(a) == a) + assert("demo682\000", demo682(a) == a) +} + +type point683 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo683 C.demo683 +func cdemo683(a point683) point683 + +func demo683(a point683) point683 { + return a +} + +func init() { + a := point683{1, 2, 3, 4, 5} + assert("cdemo683\000", cdemo683(a) == a) + assert("demo683\000", demo683(a) == a) +} + +type point684 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int32 +} + +//go:linkname cdemo684 C.demo684 +func cdemo684(a point684) point684 + +func demo684(a point684) point684 { + return a +} + +func init() { + a := point684{1, 2, 3, 4} + assert("cdemo684\000", cdemo684(a) == a) + assert("demo684\000", demo684(a) == a) +} + +type point685 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo685 C.demo685 +func cdemo685(a point685) point685 + +func demo685(a point685) point685 { + return a +} + +func init() { + a := point685{1, 2, 3, 4, 5} + assert("cdemo685\000", cdemo685(a) == a) + assert("demo685\000", demo685(a) == a) +} + +type point686 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo686 C.demo686 +func cdemo686(a point686) point686 + +func demo686(a point686) point686 { + return a +} + +func init() { + a := point686{1, 2, 3, 4, 5} + assert("cdemo686\000", cdemo686(a) == a) + assert("demo686\000", demo686(a) == a) +} + +type point687 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo687 C.demo687 +func cdemo687(a point687) point687 + +func demo687(a point687) point687 { + return a +} + +func init() { + a := point687{1, 2, 3, 4, 5} + assert("cdemo687\000", cdemo687(a) == a) + assert("demo687\000", demo687(a) == a) +} + +type point688 struct { + x0 int32 + x1 int16 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo688 C.demo688 +func cdemo688(a point688) point688 + +func demo688(a point688) point688 { + return a +} + +func init() { + a := point688{1, 2, 3, 4, 5} + assert("cdemo688\000", cdemo688(a) == a) + assert("demo688\000", demo688(a) == a) +} + +type point689 struct { + x0 int32 + x1 int16 + x2 int32 + x3 float32 +} + +//go:linkname cdemo689 C.demo689 +func cdemo689(a point689) point689 + +func demo689(a point689) point689 { + return a +} + +func init() { + a := point689{1, 2, 3, 4} + assert("cdemo689\000", cdemo689(a) == a) + assert("demo689\000", demo689(a) == a) +} + +type point690 struct { + x0 int32 + x1 int16 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo690 C.demo690 +func cdemo690(a point690) point690 + +func demo690(a point690) point690 { + return a +} + +func init() { + a := point690{1, 2, 3, 4, 5} + assert("cdemo690\000", cdemo690(a) == a) + assert("demo690\000", demo690(a) == a) +} + +type point691 struct { + x0 int32 + x1 int16 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo691 C.demo691 +func cdemo691(a point691) point691 + +func demo691(a point691) point691 { + return a +} + +func init() { + a := point691{1, 2, 3, 4, 5} + assert("cdemo691\000", cdemo691(a) == a) + assert("demo691\000", demo691(a) == a) +} + +type point692 struct { + x0 int32 + x1 int16 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo692 C.demo692 +func cdemo692(a point692) point692 + +func demo692(a point692) point692 { + return a +} + +func init() { + a := point692{1, 2, 3, 4, 5} + assert("cdemo692\000", cdemo692(a) == a) + assert("demo692\000", demo692(a) == a) +} + +type point693 struct { + x0 int32 + x1 int16 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo693 C.demo693 +func cdemo693(a point693) point693 + +func demo693(a point693) point693 { + return a +} + +func init() { + a := point693{1, 2, 3, 4, 5} + assert("cdemo693\000", cdemo693(a) == a) + assert("demo693\000", demo693(a) == a) +} + +type point694 struct { + x0 int32 + x1 int16 + x2 float32 +} + +//go:linkname cdemo694 C.demo694 +func cdemo694(a point694) point694 + +func demo694(a point694) point694 { + return a +} + +func init() { + a := point694{1, 2, 3} + assert("cdemo694\000", cdemo694(a) == a) + assert("demo694\000", demo694(a) == a) +} + +type point695 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int8 +} + +//go:linkname cdemo695 C.demo695 +func cdemo695(a point695) point695 + +func demo695(a point695) point695 { + return a +} + +func init() { + a := point695{1, 2, 3, 4} + assert("cdemo695\000", cdemo695(a) == a) + assert("demo695\000", demo695(a) == a) +} + +type point696 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo696 C.demo696 +func cdemo696(a point696) point696 + +func demo696(a point696) point696 { + return a +} + +func init() { + a := point696{1, 2, 3, 4, 5} + assert("cdemo696\000", cdemo696(a) == a) + assert("demo696\000", demo696(a) == a) +} + +type point697 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo697 C.demo697 +func cdemo697(a point697) point697 + +func demo697(a point697) point697 { + return a +} + +func init() { + a := point697{1, 2, 3, 4, 5} + assert("cdemo697\000", cdemo697(a) == a) + assert("demo697\000", demo697(a) == a) +} + +type point698 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo698 C.demo698 +func cdemo698(a point698) point698 + +func demo698(a point698) point698 { + return a +} + +func init() { + a := point698{1, 2, 3, 4, 5} + assert("cdemo698\000", cdemo698(a) == a) + assert("demo698\000", demo698(a) == a) +} + +type point699 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo699 C.demo699 +func cdemo699(a point699) point699 + +func demo699(a point699) point699 { + return a +} + +func init() { + a := point699{1, 2, 3, 4, 5} + assert("cdemo699\000", cdemo699(a) == a) + assert("demo699\000", demo699(a) == a) +} + +type point700 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int16 +} + +//go:linkname cdemo700 C.demo700 +func cdemo700(a point700) point700 + +func demo700(a point700) point700 { + return a +} + +func init() { + a := point700{1, 2, 3, 4} + assert("cdemo700\000", cdemo700(a) == a) + assert("demo700\000", demo700(a) == a) +} + +type point701 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo701 C.demo701 +func cdemo701(a point701) point701 + +func demo701(a point701) point701 { + return a +} + +func init() { + a := point701{1, 2, 3, 4, 5} + assert("cdemo701\000", cdemo701(a) == a) + assert("demo701\000", demo701(a) == a) +} + +type point702 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo702 C.demo702 +func cdemo702(a point702) point702 + +func demo702(a point702) point702 { + return a +} + +func init() { + a := point702{1, 2, 3, 4, 5} + assert("cdemo702\000", cdemo702(a) == a) + assert("demo702\000", demo702(a) == a) +} + +type point703 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo703 C.demo703 +func cdemo703(a point703) point703 + +func demo703(a point703) point703 { + return a +} + +func init() { + a := point703{1, 2, 3, 4, 5} + assert("cdemo703\000", cdemo703(a) == a) + assert("demo703\000", demo703(a) == a) +} + +type point704 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo704 C.demo704 +func cdemo704(a point704) point704 + +func demo704(a point704) point704 { + return a +} + +func init() { + a := point704{1, 2, 3, 4, 5} + assert("cdemo704\000", cdemo704(a) == a) + assert("demo704\000", demo704(a) == a) +} + +type point705 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int32 +} + +//go:linkname cdemo705 C.demo705 +func cdemo705(a point705) point705 + +func demo705(a point705) point705 { + return a +} + +func init() { + a := point705{1, 2, 3, 4} + assert("cdemo705\000", cdemo705(a) == a) + assert("demo705\000", demo705(a) == a) +} + +type point706 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo706 C.demo706 +func cdemo706(a point706) point706 + +func demo706(a point706) point706 { + return a +} + +func init() { + a := point706{1, 2, 3, 4, 5} + assert("cdemo706\000", cdemo706(a) == a) + assert("demo706\000", demo706(a) == a) +} + +type point707 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo707 C.demo707 +func cdemo707(a point707) point707 + +func demo707(a point707) point707 { + return a +} + +func init() { + a := point707{1, 2, 3, 4, 5} + assert("cdemo707\000", cdemo707(a) == a) + assert("demo707\000", demo707(a) == a) +} + +type point708 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo708 C.demo708 +func cdemo708(a point708) point708 + +func demo708(a point708) point708 { + return a +} + +func init() { + a := point708{1, 2, 3, 4, 5} + assert("cdemo708\000", cdemo708(a) == a) + assert("demo708\000", demo708(a) == a) +} + +type point709 struct { + x0 int32 + x1 int16 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo709 C.demo709 +func cdemo709(a point709) point709 + +func demo709(a point709) point709 { + return a +} + +func init() { + a := point709{1, 2, 3, 4, 5} + assert("cdemo709\000", cdemo709(a) == a) + assert("demo709\000", demo709(a) == a) +} + +type point710 struct { + x0 int32 + x1 int16 + x2 float32 + x3 float32 +} + +//go:linkname cdemo710 C.demo710 +func cdemo710(a point710) point710 + +func demo710(a point710) point710 { + return a +} + +func init() { + a := point710{1, 2, 3, 4} + assert("cdemo710\000", cdemo710(a) == a) + assert("demo710\000", demo710(a) == a) +} + +type point711 struct { + x0 int32 + x1 int16 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo711 C.demo711 +func cdemo711(a point711) point711 + +func demo711(a point711) point711 { + return a +} + +func init() { + a := point711{1, 2, 3, 4, 5} + assert("cdemo711\000", cdemo711(a) == a) + assert("demo711\000", demo711(a) == a) +} + +type point712 struct { + x0 int32 + x1 int16 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo712 C.demo712 +func cdemo712(a point712) point712 + +func demo712(a point712) point712 { + return a +} + +func init() { + a := point712{1, 2, 3, 4, 5} + assert("cdemo712\000", cdemo712(a) == a) + assert("demo712\000", demo712(a) == a) +} + +type point713 struct { + x0 int32 + x1 int16 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo713 C.demo713 +func cdemo713(a point713) point713 + +func demo713(a point713) point713 { + return a +} + +func init() { + a := point713{1, 2, 3, 4, 5} + assert("cdemo713\000", cdemo713(a) == a) + assert("demo713\000", demo713(a) == a) +} + +type point714 struct { + x0 int32 + x1 int16 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo714 C.demo714 +func cdemo714(a point714) point714 + +func demo714(a point714) point714 { + return a +} + +func init() { + a := point714{1, 2, 3, 4, 5} + assert("cdemo714\000", cdemo714(a) == a) + assert("demo714\000", demo714(a) == a) +} + +type point715 struct { + x0 int32 + x1 float32 + x2 int8 +} + +//go:linkname cdemo715 C.demo715 +func cdemo715(a point715) point715 + +func demo715(a point715) point715 { + return a +} + +func init() { + a := point715{1, 2, 3} + assert("cdemo715\000", cdemo715(a) == a) + assert("demo715\000", demo715(a) == a) +} + +type point716 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int8 +} + +//go:linkname cdemo716 C.demo716 +func cdemo716(a point716) point716 + +func demo716(a point716) point716 { + return a +} + +func init() { + a := point716{1, 2, 3, 4} + assert("cdemo716\000", cdemo716(a) == a) + assert("demo716\000", demo716(a) == a) +} + +type point717 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo717 C.demo717 +func cdemo717(a point717) point717 + +func demo717(a point717) point717 { + return a +} + +func init() { + a := point717{1, 2, 3, 4, 5} + assert("cdemo717\000", cdemo717(a) == a) + assert("demo717\000", demo717(a) == a) +} + +type point718 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo718 C.demo718 +func cdemo718(a point718) point718 + +func demo718(a point718) point718 { + return a +} + +func init() { + a := point718{1, 2, 3, 4, 5} + assert("cdemo718\000", cdemo718(a) == a) + assert("demo718\000", demo718(a) == a) +} + +type point719 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo719 C.demo719 +func cdemo719(a point719) point719 + +func demo719(a point719) point719 { + return a +} + +func init() { + a := point719{1, 2, 3, 4, 5} + assert("cdemo719\000", cdemo719(a) == a) + assert("demo719\000", demo719(a) == a) +} + +type point720 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo720 C.demo720 +func cdemo720(a point720) point720 + +func demo720(a point720) point720 { + return a +} + +func init() { + a := point720{1, 2, 3, 4, 5} + assert("cdemo720\000", cdemo720(a) == a) + assert("demo720\000", demo720(a) == a) +} + +type point721 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int16 +} + +//go:linkname cdemo721 C.demo721 +func cdemo721(a point721) point721 + +func demo721(a point721) point721 { + return a +} + +func init() { + a := point721{1, 2, 3, 4} + assert("cdemo721\000", cdemo721(a) == a) + assert("demo721\000", demo721(a) == a) +} + +type point722 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo722 C.demo722 +func cdemo722(a point722) point722 + +func demo722(a point722) point722 { + return a +} + +func init() { + a := point722{1, 2, 3, 4, 5} + assert("cdemo722\000", cdemo722(a) == a) + assert("demo722\000", demo722(a) == a) +} + +type point723 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo723 C.demo723 +func cdemo723(a point723) point723 + +func demo723(a point723) point723 { + return a +} + +func init() { + a := point723{1, 2, 3, 4, 5} + assert("cdemo723\000", cdemo723(a) == a) + assert("demo723\000", demo723(a) == a) +} + +type point724 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo724 C.demo724 +func cdemo724(a point724) point724 + +func demo724(a point724) point724 { + return a +} + +func init() { + a := point724{1, 2, 3, 4, 5} + assert("cdemo724\000", cdemo724(a) == a) + assert("demo724\000", demo724(a) == a) +} + +type point725 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo725 C.demo725 +func cdemo725(a point725) point725 + +func demo725(a point725) point725 { + return a +} + +func init() { + a := point725{1, 2, 3, 4, 5} + assert("cdemo725\000", cdemo725(a) == a) + assert("demo725\000", demo725(a) == a) +} + +type point726 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int32 +} + +//go:linkname cdemo726 C.demo726 +func cdemo726(a point726) point726 + +func demo726(a point726) point726 { + return a +} + +func init() { + a := point726{1, 2, 3, 4} + assert("cdemo726\000", cdemo726(a) == a) + assert("demo726\000", demo726(a) == a) +} + +type point727 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo727 C.demo727 +func cdemo727(a point727) point727 + +func demo727(a point727) point727 { + return a +} + +func init() { + a := point727{1, 2, 3, 4, 5} + assert("cdemo727\000", cdemo727(a) == a) + assert("demo727\000", demo727(a) == a) +} + +type point728 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo728 C.demo728 +func cdemo728(a point728) point728 + +func demo728(a point728) point728 { + return a +} + +func init() { + a := point728{1, 2, 3, 4, 5} + assert("cdemo728\000", cdemo728(a) == a) + assert("demo728\000", demo728(a) == a) +} + +type point729 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo729 C.demo729 +func cdemo729(a point729) point729 + +func demo729(a point729) point729 { + return a +} + +func init() { + a := point729{1, 2, 3, 4, 5} + assert("cdemo729\000", cdemo729(a) == a) + assert("demo729\000", demo729(a) == a) +} + +type point730 struct { + x0 int32 + x1 float32 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo730 C.demo730 +func cdemo730(a point730) point730 + +func demo730(a point730) point730 { + return a +} + +func init() { + a := point730{1, 2, 3, 4, 5} + assert("cdemo730\000", cdemo730(a) == a) + assert("demo730\000", demo730(a) == a) +} + +type point731 struct { + x0 int32 + x1 float32 + x2 int8 + x3 float32 +} + +//go:linkname cdemo731 C.demo731 +func cdemo731(a point731) point731 + +func demo731(a point731) point731 { + return a +} + +func init() { + a := point731{1, 2, 3, 4} + assert("cdemo731\000", cdemo731(a) == a) + assert("demo731\000", demo731(a) == a) +} + +type point732 struct { + x0 int32 + x1 float32 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo732 C.demo732 +func cdemo732(a point732) point732 + +func demo732(a point732) point732 { + return a +} + +func init() { + a := point732{1, 2, 3, 4, 5} + assert("cdemo732\000", cdemo732(a) == a) + assert("demo732\000", demo732(a) == a) +} + +type point733 struct { + x0 int32 + x1 float32 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo733 C.demo733 +func cdemo733(a point733) point733 + +func demo733(a point733) point733 { + return a +} + +func init() { + a := point733{1, 2, 3, 4, 5} + assert("cdemo733\000", cdemo733(a) == a) + assert("demo733\000", demo733(a) == a) +} + +type point734 struct { + x0 int32 + x1 float32 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo734 C.demo734 +func cdemo734(a point734) point734 + +func demo734(a point734) point734 { + return a +} + +func init() { + a := point734{1, 2, 3, 4, 5} + assert("cdemo734\000", cdemo734(a) == a) + assert("demo734\000", demo734(a) == a) +} + +type point735 struct { + x0 int32 + x1 float32 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo735 C.demo735 +func cdemo735(a point735) point735 + +func demo735(a point735) point735 { + return a +} + +func init() { + a := point735{1, 2, 3, 4, 5} + assert("cdemo735\000", cdemo735(a) == a) + assert("demo735\000", demo735(a) == a) +} + +type point736 struct { + x0 int32 + x1 float32 + x2 int16 +} + +//go:linkname cdemo736 C.demo736 +func cdemo736(a point736) point736 + +func demo736(a point736) point736 { + return a +} + +func init() { + a := point736{1, 2, 3} + assert("cdemo736\000", cdemo736(a) == a) + assert("demo736\000", demo736(a) == a) +} + +type point737 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int8 +} + +//go:linkname cdemo737 C.demo737 +func cdemo737(a point737) point737 + +func demo737(a point737) point737 { + return a +} + +func init() { + a := point737{1, 2, 3, 4} + assert("cdemo737\000", cdemo737(a) == a) + assert("demo737\000", demo737(a) == a) +} + +type point738 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo738 C.demo738 +func cdemo738(a point738) point738 + +func demo738(a point738) point738 { + return a +} + +func init() { + a := point738{1, 2, 3, 4, 5} + assert("cdemo738\000", cdemo738(a) == a) + assert("demo738\000", demo738(a) == a) +} + +type point739 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo739 C.demo739 +func cdemo739(a point739) point739 + +func demo739(a point739) point739 { + return a +} + +func init() { + a := point739{1, 2, 3, 4, 5} + assert("cdemo739\000", cdemo739(a) == a) + assert("demo739\000", demo739(a) == a) +} + +type point740 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo740 C.demo740 +func cdemo740(a point740) point740 + +func demo740(a point740) point740 { + return a +} + +func init() { + a := point740{1, 2, 3, 4, 5} + assert("cdemo740\000", cdemo740(a) == a) + assert("demo740\000", demo740(a) == a) +} + +type point741 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo741 C.demo741 +func cdemo741(a point741) point741 + +func demo741(a point741) point741 { + return a +} + +func init() { + a := point741{1, 2, 3, 4, 5} + assert("cdemo741\000", cdemo741(a) == a) + assert("demo741\000", demo741(a) == a) +} + +type point742 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int16 +} + +//go:linkname cdemo742 C.demo742 +func cdemo742(a point742) point742 + +func demo742(a point742) point742 { + return a +} + +func init() { + a := point742{1, 2, 3, 4} + assert("cdemo742\000", cdemo742(a) == a) + assert("demo742\000", demo742(a) == a) +} + +type point743 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo743 C.demo743 +func cdemo743(a point743) point743 + +func demo743(a point743) point743 { + return a +} + +func init() { + a := point743{1, 2, 3, 4, 5} + assert("cdemo743\000", cdemo743(a) == a) + assert("demo743\000", demo743(a) == a) +} + +type point744 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo744 C.demo744 +func cdemo744(a point744) point744 + +func demo744(a point744) point744 { + return a +} + +func init() { + a := point744{1, 2, 3, 4, 5} + assert("cdemo744\000", cdemo744(a) == a) + assert("demo744\000", demo744(a) == a) +} + +type point745 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo745 C.demo745 +func cdemo745(a point745) point745 + +func demo745(a point745) point745 { + return a +} + +func init() { + a := point745{1, 2, 3, 4, 5} + assert("cdemo745\000", cdemo745(a) == a) + assert("demo745\000", demo745(a) == a) +} + +type point746 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo746 C.demo746 +func cdemo746(a point746) point746 + +func demo746(a point746) point746 { + return a +} + +func init() { + a := point746{1, 2, 3, 4, 5} + assert("cdemo746\000", cdemo746(a) == a) + assert("demo746\000", demo746(a) == a) +} + +type point747 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int32 +} + +//go:linkname cdemo747 C.demo747 +func cdemo747(a point747) point747 + +func demo747(a point747) point747 { + return a +} + +func init() { + a := point747{1, 2, 3, 4} + assert("cdemo747\000", cdemo747(a) == a) + assert("demo747\000", demo747(a) == a) +} + +type point748 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo748 C.demo748 +func cdemo748(a point748) point748 + +func demo748(a point748) point748 { + return a +} + +func init() { + a := point748{1, 2, 3, 4, 5} + assert("cdemo748\000", cdemo748(a) == a) + assert("demo748\000", demo748(a) == a) +} + +type point749 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo749 C.demo749 +func cdemo749(a point749) point749 + +func demo749(a point749) point749 { + return a +} + +func init() { + a := point749{1, 2, 3, 4, 5} + assert("cdemo749\000", cdemo749(a) == a) + assert("demo749\000", demo749(a) == a) +} + +type point750 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo750 C.demo750 +func cdemo750(a point750) point750 + +func demo750(a point750) point750 { + return a +} + +func init() { + a := point750{1, 2, 3, 4, 5} + assert("cdemo750\000", cdemo750(a) == a) + assert("demo750\000", demo750(a) == a) +} + +type point751 struct { + x0 int32 + x1 float32 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo751 C.demo751 +func cdemo751(a point751) point751 + +func demo751(a point751) point751 { + return a +} + +func init() { + a := point751{1, 2, 3, 4, 5} + assert("cdemo751\000", cdemo751(a) == a) + assert("demo751\000", demo751(a) == a) +} + +type point752 struct { + x0 int32 + x1 float32 + x2 int16 + x3 float32 +} + +//go:linkname cdemo752 C.demo752 +func cdemo752(a point752) point752 + +func demo752(a point752) point752 { + return a +} + +func init() { + a := point752{1, 2, 3, 4} + assert("cdemo752\000", cdemo752(a) == a) + assert("demo752\000", demo752(a) == a) +} + +type point753 struct { + x0 int32 + x1 float32 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo753 C.demo753 +func cdemo753(a point753) point753 + +func demo753(a point753) point753 { + return a +} + +func init() { + a := point753{1, 2, 3, 4, 5} + assert("cdemo753\000", cdemo753(a) == a) + assert("demo753\000", demo753(a) == a) +} + +type point754 struct { + x0 int32 + x1 float32 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo754 C.demo754 +func cdemo754(a point754) point754 + +func demo754(a point754) point754 { + return a +} + +func init() { + a := point754{1, 2, 3, 4, 5} + assert("cdemo754\000", cdemo754(a) == a) + assert("demo754\000", demo754(a) == a) +} + +type point755 struct { + x0 int32 + x1 float32 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo755 C.demo755 +func cdemo755(a point755) point755 + +func demo755(a point755) point755 { + return a +} + +func init() { + a := point755{1, 2, 3, 4, 5} + assert("cdemo755\000", cdemo755(a) == a) + assert("demo755\000", demo755(a) == a) +} + +type point756 struct { + x0 int32 + x1 float32 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo756 C.demo756 +func cdemo756(a point756) point756 + +func demo756(a point756) point756 { + return a +} + +func init() { + a := point756{1, 2, 3, 4, 5} + assert("cdemo756\000", cdemo756(a) == a) + assert("demo756\000", demo756(a) == a) +} + +type point757 struct { + x0 int32 + x1 float32 + x2 int32 +} + +//go:linkname cdemo757 C.demo757 +func cdemo757(a point757) point757 + +func demo757(a point757) point757 { + return a +} + +func init() { + a := point757{1, 2, 3} + assert("cdemo757\000", cdemo757(a) == a) + assert("demo757\000", demo757(a) == a) +} + +type point758 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int8 +} + +//go:linkname cdemo758 C.demo758 +func cdemo758(a point758) point758 + +func demo758(a point758) point758 { + return a +} + +func init() { + a := point758{1, 2, 3, 4} + assert("cdemo758\000", cdemo758(a) == a) + assert("demo758\000", demo758(a) == a) +} + +type point759 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo759 C.demo759 +func cdemo759(a point759) point759 + +func demo759(a point759) point759 { + return a +} + +func init() { + a := point759{1, 2, 3, 4, 5} + assert("cdemo759\000", cdemo759(a) == a) + assert("demo759\000", demo759(a) == a) +} + +type point760 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo760 C.demo760 +func cdemo760(a point760) point760 + +func demo760(a point760) point760 { + return a +} + +func init() { + a := point760{1, 2, 3, 4, 5} + assert("cdemo760\000", cdemo760(a) == a) + assert("demo760\000", demo760(a) == a) +} + +type point761 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo761 C.demo761 +func cdemo761(a point761) point761 + +func demo761(a point761) point761 { + return a +} + +func init() { + a := point761{1, 2, 3, 4, 5} + assert("cdemo761\000", cdemo761(a) == a) + assert("demo761\000", demo761(a) == a) +} + +type point762 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo762 C.demo762 +func cdemo762(a point762) point762 + +func demo762(a point762) point762 { + return a +} + +func init() { + a := point762{1, 2, 3, 4, 5} + assert("cdemo762\000", cdemo762(a) == a) + assert("demo762\000", demo762(a) == a) +} + +type point763 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int16 +} + +//go:linkname cdemo763 C.demo763 +func cdemo763(a point763) point763 + +func demo763(a point763) point763 { + return a +} + +func init() { + a := point763{1, 2, 3, 4} + assert("cdemo763\000", cdemo763(a) == a) + assert("demo763\000", demo763(a) == a) +} + +type point764 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo764 C.demo764 +func cdemo764(a point764) point764 + +func demo764(a point764) point764 { + return a +} + +func init() { + a := point764{1, 2, 3, 4, 5} + assert("cdemo764\000", cdemo764(a) == a) + assert("demo764\000", demo764(a) == a) +} + +type point765 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo765 C.demo765 +func cdemo765(a point765) point765 + +func demo765(a point765) point765 { + return a +} + +func init() { + a := point765{1, 2, 3, 4, 5} + assert("cdemo765\000", cdemo765(a) == a) + assert("demo765\000", demo765(a) == a) +} + +type point766 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo766 C.demo766 +func cdemo766(a point766) point766 + +func demo766(a point766) point766 { + return a +} + +func init() { + a := point766{1, 2, 3, 4, 5} + assert("cdemo766\000", cdemo766(a) == a) + assert("demo766\000", demo766(a) == a) +} + +type point767 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo767 C.demo767 +func cdemo767(a point767) point767 + +func demo767(a point767) point767 { + return a +} + +func init() { + a := point767{1, 2, 3, 4, 5} + assert("cdemo767\000", cdemo767(a) == a) + assert("demo767\000", demo767(a) == a) +} + +type point768 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int32 +} + +//go:linkname cdemo768 C.demo768 +func cdemo768(a point768) point768 + +func demo768(a point768) point768 { + return a +} + +func init() { + a := point768{1, 2, 3, 4} + assert("cdemo768\000", cdemo768(a) == a) + assert("demo768\000", demo768(a) == a) +} + +type point769 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo769 C.demo769 +func cdemo769(a point769) point769 + +func demo769(a point769) point769 { + return a +} + +func init() { + a := point769{1, 2, 3, 4, 5} + assert("cdemo769\000", cdemo769(a) == a) + assert("demo769\000", demo769(a) == a) +} + +type point770 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo770 C.demo770 +func cdemo770(a point770) point770 + +func demo770(a point770) point770 { + return a +} + +func init() { + a := point770{1, 2, 3, 4, 5} + assert("cdemo770\000", cdemo770(a) == a) + assert("demo770\000", demo770(a) == a) +} + +type point771 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo771 C.demo771 +func cdemo771(a point771) point771 + +func demo771(a point771) point771 { + return a +} + +func init() { + a := point771{1, 2, 3, 4, 5} + assert("cdemo771\000", cdemo771(a) == a) + assert("demo771\000", demo771(a) == a) +} + +type point772 struct { + x0 int32 + x1 float32 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo772 C.demo772 +func cdemo772(a point772) point772 + +func demo772(a point772) point772 { + return a +} + +func init() { + a := point772{1, 2, 3, 4, 5} + assert("cdemo772\000", cdemo772(a) == a) + assert("demo772\000", demo772(a) == a) +} + +type point773 struct { + x0 int32 + x1 float32 + x2 int32 + x3 float32 +} + +//go:linkname cdemo773 C.demo773 +func cdemo773(a point773) point773 + +func demo773(a point773) point773 { + return a +} + +func init() { + a := point773{1, 2, 3, 4} + assert("cdemo773\000", cdemo773(a) == a) + assert("demo773\000", demo773(a) == a) +} + +type point774 struct { + x0 int32 + x1 float32 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo774 C.demo774 +func cdemo774(a point774) point774 + +func demo774(a point774) point774 { + return a +} + +func init() { + a := point774{1, 2, 3, 4, 5} + assert("cdemo774\000", cdemo774(a) == a) + assert("demo774\000", demo774(a) == a) +} + +type point775 struct { + x0 int32 + x1 float32 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo775 C.demo775 +func cdemo775(a point775) point775 + +func demo775(a point775) point775 { + return a +} + +func init() { + a := point775{1, 2, 3, 4, 5} + assert("cdemo775\000", cdemo775(a) == a) + assert("demo775\000", demo775(a) == a) +} + +type point776 struct { + x0 int32 + x1 float32 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo776 C.demo776 +func cdemo776(a point776) point776 + +func demo776(a point776) point776 { + return a +} + +func init() { + a := point776{1, 2, 3, 4, 5} + assert("cdemo776\000", cdemo776(a) == a) + assert("demo776\000", demo776(a) == a) +} + +type point777 struct { + x0 int32 + x1 float32 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo777 C.demo777 +func cdemo777(a point777) point777 + +func demo777(a point777) point777 { + return a +} + +func init() { + a := point777{1, 2, 3, 4, 5} + assert("cdemo777\000", cdemo777(a) == a) + assert("demo777\000", demo777(a) == a) +} + +type point778 struct { + x0 int32 + x1 float32 + x2 float32 +} + +//go:linkname cdemo778 C.demo778 +func cdemo778(a point778) point778 + +func demo778(a point778) point778 { + return a +} + +func init() { + a := point778{1, 2, 3} + assert("cdemo778\000", cdemo778(a) == a) + assert("demo778\000", demo778(a) == a) +} + +type point779 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int8 +} + +//go:linkname cdemo779 C.demo779 +func cdemo779(a point779) point779 + +func demo779(a point779) point779 { + return a +} + +func init() { + a := point779{1, 2, 3, 4} + assert("cdemo779\000", cdemo779(a) == a) + assert("demo779\000", demo779(a) == a) +} + +type point780 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo780 C.demo780 +func cdemo780(a point780) point780 + +func demo780(a point780) point780 { + return a +} + +func init() { + a := point780{1, 2, 3, 4, 5} + assert("cdemo780\000", cdemo780(a) == a) + assert("demo780\000", demo780(a) == a) +} + +type point781 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo781 C.demo781 +func cdemo781(a point781) point781 + +func demo781(a point781) point781 { + return a +} + +func init() { + a := point781{1, 2, 3, 4, 5} + assert("cdemo781\000", cdemo781(a) == a) + assert("demo781\000", demo781(a) == a) +} + +type point782 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo782 C.demo782 +func cdemo782(a point782) point782 + +func demo782(a point782) point782 { + return a +} + +func init() { + a := point782{1, 2, 3, 4, 5} + assert("cdemo782\000", cdemo782(a) == a) + assert("demo782\000", demo782(a) == a) +} + +type point783 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo783 C.demo783 +func cdemo783(a point783) point783 + +func demo783(a point783) point783 { + return a +} + +func init() { + a := point783{1, 2, 3, 4, 5} + assert("cdemo783\000", cdemo783(a) == a) + assert("demo783\000", demo783(a) == a) +} + +type point784 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int16 +} + +//go:linkname cdemo784 C.demo784 +func cdemo784(a point784) point784 + +func demo784(a point784) point784 { + return a +} + +func init() { + a := point784{1, 2, 3, 4} + assert("cdemo784\000", cdemo784(a) == a) + assert("demo784\000", demo784(a) == a) +} + +type point785 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo785 C.demo785 +func cdemo785(a point785) point785 + +func demo785(a point785) point785 { + return a +} + +func init() { + a := point785{1, 2, 3, 4, 5} + assert("cdemo785\000", cdemo785(a) == a) + assert("demo785\000", demo785(a) == a) +} + +type point786 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo786 C.demo786 +func cdemo786(a point786) point786 + +func demo786(a point786) point786 { + return a +} + +func init() { + a := point786{1, 2, 3, 4, 5} + assert("cdemo786\000", cdemo786(a) == a) + assert("demo786\000", demo786(a) == a) +} + +type point787 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo787 C.demo787 +func cdemo787(a point787) point787 + +func demo787(a point787) point787 { + return a +} + +func init() { + a := point787{1, 2, 3, 4, 5} + assert("cdemo787\000", cdemo787(a) == a) + assert("demo787\000", demo787(a) == a) +} + +type point788 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo788 C.demo788 +func cdemo788(a point788) point788 + +func demo788(a point788) point788 { + return a +} + +func init() { + a := point788{1, 2, 3, 4, 5} + assert("cdemo788\000", cdemo788(a) == a) + assert("demo788\000", demo788(a) == a) +} + +type point789 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int32 +} + +//go:linkname cdemo789 C.demo789 +func cdemo789(a point789) point789 + +func demo789(a point789) point789 { + return a +} + +func init() { + a := point789{1, 2, 3, 4} + assert("cdemo789\000", cdemo789(a) == a) + assert("demo789\000", demo789(a) == a) +} + +type point790 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo790 C.demo790 +func cdemo790(a point790) point790 + +func demo790(a point790) point790 { + return a +} + +func init() { + a := point790{1, 2, 3, 4, 5} + assert("cdemo790\000", cdemo790(a) == a) + assert("demo790\000", demo790(a) == a) +} + +type point791 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo791 C.demo791 +func cdemo791(a point791) point791 + +func demo791(a point791) point791 { + return a +} + +func init() { + a := point791{1, 2, 3, 4, 5} + assert("cdemo791\000", cdemo791(a) == a) + assert("demo791\000", demo791(a) == a) +} + +type point792 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo792 C.demo792 +func cdemo792(a point792) point792 + +func demo792(a point792) point792 { + return a +} + +func init() { + a := point792{1, 2, 3, 4, 5} + assert("cdemo792\000", cdemo792(a) == a) + assert("demo792\000", demo792(a) == a) +} + +type point793 struct { + x0 int32 + x1 float32 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo793 C.demo793 +func cdemo793(a point793) point793 + +func demo793(a point793) point793 { + return a +} + +func init() { + a := point793{1, 2, 3, 4, 5} + assert("cdemo793\000", cdemo793(a) == a) + assert("demo793\000", demo793(a) == a) +} + +type point794 struct { + x0 int32 + x1 float32 + x2 float32 + x3 float32 +} + +//go:linkname cdemo794 C.demo794 +func cdemo794(a point794) point794 + +func demo794(a point794) point794 { + return a +} + +func init() { + a := point794{1, 2, 3, 4} + assert("cdemo794\000", cdemo794(a) == a) + assert("demo794\000", demo794(a) == a) +} + +type point795 struct { + x0 int32 + x1 float32 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo795 C.demo795 +func cdemo795(a point795) point795 + +func demo795(a point795) point795 { + return a +} + +func init() { + a := point795{1, 2, 3, 4, 5} + assert("cdemo795\000", cdemo795(a) == a) + assert("demo795\000", demo795(a) == a) +} + +type point796 struct { + x0 int32 + x1 float32 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo796 C.demo796 +func cdemo796(a point796) point796 + +func demo796(a point796) point796 { + return a +} + +func init() { + a := point796{1, 2, 3, 4, 5} + assert("cdemo796\000", cdemo796(a) == a) + assert("demo796\000", demo796(a) == a) +} + +type point797 struct { + x0 int32 + x1 float32 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo797 C.demo797 +func cdemo797(a point797) point797 + +func demo797(a point797) point797 { + return a +} + +func init() { + a := point797{1, 2, 3, 4, 5} + assert("cdemo797\000", cdemo797(a) == a) + assert("demo797\000", demo797(a) == a) +} + +type point798 struct { + x0 int32 + x1 float32 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo798 C.demo798 +func cdemo798(a point798) point798 + +func demo798(a point798) point798 { + return a +} + +func init() { + a := point798{1, 2, 3, 4, 5} + assert("cdemo798\000", cdemo798(a) == a) + assert("demo798\000", demo798(a) == a) +} + +type point799 struct { + x0 float32 + x1 int8 + x2 int8 +} + +//go:linkname cdemo799 C.demo799 +func cdemo799(a point799) point799 + +func demo799(a point799) point799 { + return a +} + +func init() { + a := point799{1, 2, 3} + assert("cdemo799\000", cdemo799(a) == a) + assert("demo799\000", demo799(a) == a) +} + +type point800 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int8 +} + +//go:linkname cdemo800 C.demo800 +func cdemo800(a point800) point800 + +func demo800(a point800) point800 { + return a +} + +func init() { + a := point800{1, 2, 3, 4} + assert("cdemo800\000", cdemo800(a) == a) + assert("demo800\000", demo800(a) == a) +} + +type point801 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo801 C.demo801 +func cdemo801(a point801) point801 + +func demo801(a point801) point801 { + return a +} + +func init() { + a := point801{1, 2, 3, 4, 5} + assert("cdemo801\000", cdemo801(a) == a) + assert("demo801\000", demo801(a) == a) +} + +type point802 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo802 C.demo802 +func cdemo802(a point802) point802 + +func demo802(a point802) point802 { + return a +} + +func init() { + a := point802{1, 2, 3, 4, 5} + assert("cdemo802\000", cdemo802(a) == a) + assert("demo802\000", demo802(a) == a) +} + +type point803 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo803 C.demo803 +func cdemo803(a point803) point803 + +func demo803(a point803) point803 { + return a +} + +func init() { + a := point803{1, 2, 3, 4, 5} + assert("cdemo803\000", cdemo803(a) == a) + assert("demo803\000", demo803(a) == a) +} + +type point804 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo804 C.demo804 +func cdemo804(a point804) point804 + +func demo804(a point804) point804 { + return a +} + +func init() { + a := point804{1, 2, 3, 4, 5} + assert("cdemo804\000", cdemo804(a) == a) + assert("demo804\000", demo804(a) == a) +} + +type point805 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int16 +} + +//go:linkname cdemo805 C.demo805 +func cdemo805(a point805) point805 + +func demo805(a point805) point805 { + return a +} + +func init() { + a := point805{1, 2, 3, 4} + assert("cdemo805\000", cdemo805(a) == a) + assert("demo805\000", demo805(a) == a) +} + +type point806 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo806 C.demo806 +func cdemo806(a point806) point806 + +func demo806(a point806) point806 { + return a +} + +func init() { + a := point806{1, 2, 3, 4, 5} + assert("cdemo806\000", cdemo806(a) == a) + assert("demo806\000", demo806(a) == a) +} + +type point807 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo807 C.demo807 +func cdemo807(a point807) point807 + +func demo807(a point807) point807 { + return a +} + +func init() { + a := point807{1, 2, 3, 4, 5} + assert("cdemo807\000", cdemo807(a) == a) + assert("demo807\000", demo807(a) == a) +} + +type point808 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo808 C.demo808 +func cdemo808(a point808) point808 + +func demo808(a point808) point808 { + return a +} + +func init() { + a := point808{1, 2, 3, 4, 5} + assert("cdemo808\000", cdemo808(a) == a) + assert("demo808\000", demo808(a) == a) +} + +type point809 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo809 C.demo809 +func cdemo809(a point809) point809 + +func demo809(a point809) point809 { + return a +} + +func init() { + a := point809{1, 2, 3, 4, 5} + assert("cdemo809\000", cdemo809(a) == a) + assert("demo809\000", demo809(a) == a) +} + +type point810 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int32 +} + +//go:linkname cdemo810 C.demo810 +func cdemo810(a point810) point810 + +func demo810(a point810) point810 { + return a +} + +func init() { + a := point810{1, 2, 3, 4} + assert("cdemo810\000", cdemo810(a) == a) + assert("demo810\000", demo810(a) == a) +} + +type point811 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo811 C.demo811 +func cdemo811(a point811) point811 + +func demo811(a point811) point811 { + return a +} + +func init() { + a := point811{1, 2, 3, 4, 5} + assert("cdemo811\000", cdemo811(a) == a) + assert("demo811\000", demo811(a) == a) +} + +type point812 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo812 C.demo812 +func cdemo812(a point812) point812 + +func demo812(a point812) point812 { + return a +} + +func init() { + a := point812{1, 2, 3, 4, 5} + assert("cdemo812\000", cdemo812(a) == a) + assert("demo812\000", demo812(a) == a) +} + +type point813 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo813 C.demo813 +func cdemo813(a point813) point813 + +func demo813(a point813) point813 { + return a +} + +func init() { + a := point813{1, 2, 3, 4, 5} + assert("cdemo813\000", cdemo813(a) == a) + assert("demo813\000", demo813(a) == a) +} + +type point814 struct { + x0 float32 + x1 int8 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo814 C.demo814 +func cdemo814(a point814) point814 + +func demo814(a point814) point814 { + return a +} + +func init() { + a := point814{1, 2, 3, 4, 5} + assert("cdemo814\000", cdemo814(a) == a) + assert("demo814\000", demo814(a) == a) +} + +type point815 struct { + x0 float32 + x1 int8 + x2 int8 + x3 float32 +} + +//go:linkname cdemo815 C.demo815 +func cdemo815(a point815) point815 + +func demo815(a point815) point815 { + return a +} + +func init() { + a := point815{1, 2, 3, 4} + assert("cdemo815\000", cdemo815(a) == a) + assert("demo815\000", demo815(a) == a) +} + +type point816 struct { + x0 float32 + x1 int8 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo816 C.demo816 +func cdemo816(a point816) point816 + +func demo816(a point816) point816 { + return a +} + +func init() { + a := point816{1, 2, 3, 4, 5} + assert("cdemo816\000", cdemo816(a) == a) + assert("demo816\000", demo816(a) == a) +} + +type point817 struct { + x0 float32 + x1 int8 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo817 C.demo817 +func cdemo817(a point817) point817 + +func demo817(a point817) point817 { + return a +} + +func init() { + a := point817{1, 2, 3, 4, 5} + assert("cdemo817\000", cdemo817(a) == a) + assert("demo817\000", demo817(a) == a) +} + +type point818 struct { + x0 float32 + x1 int8 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo818 C.demo818 +func cdemo818(a point818) point818 + +func demo818(a point818) point818 { + return a +} + +func init() { + a := point818{1, 2, 3, 4, 5} + assert("cdemo818\000", cdemo818(a) == a) + assert("demo818\000", demo818(a) == a) +} + +type point819 struct { + x0 float32 + x1 int8 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo819 C.demo819 +func cdemo819(a point819) point819 + +func demo819(a point819) point819 { + return a +} + +func init() { + a := point819{1, 2, 3, 4, 5} + assert("cdemo819\000", cdemo819(a) == a) + assert("demo819\000", demo819(a) == a) +} + +type point820 struct { + x0 float32 + x1 int8 + x2 int16 +} + +//go:linkname cdemo820 C.demo820 +func cdemo820(a point820) point820 + +func demo820(a point820) point820 { + return a +} + +func init() { + a := point820{1, 2, 3} + assert("cdemo820\000", cdemo820(a) == a) + assert("demo820\000", demo820(a) == a) +} + +type point821 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int8 +} + +//go:linkname cdemo821 C.demo821 +func cdemo821(a point821) point821 + +func demo821(a point821) point821 { + return a +} + +func init() { + a := point821{1, 2, 3, 4} + assert("cdemo821\000", cdemo821(a) == a) + assert("demo821\000", demo821(a) == a) +} + +type point822 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo822 C.demo822 +func cdemo822(a point822) point822 + +func demo822(a point822) point822 { + return a +} + +func init() { + a := point822{1, 2, 3, 4, 5} + assert("cdemo822\000", cdemo822(a) == a) + assert("demo822\000", demo822(a) == a) +} + +type point823 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo823 C.demo823 +func cdemo823(a point823) point823 + +func demo823(a point823) point823 { + return a +} + +func init() { + a := point823{1, 2, 3, 4, 5} + assert("cdemo823\000", cdemo823(a) == a) + assert("demo823\000", demo823(a) == a) +} + +type point824 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo824 C.demo824 +func cdemo824(a point824) point824 + +func demo824(a point824) point824 { + return a +} + +func init() { + a := point824{1, 2, 3, 4, 5} + assert("cdemo824\000", cdemo824(a) == a) + assert("demo824\000", demo824(a) == a) +} + +type point825 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo825 C.demo825 +func cdemo825(a point825) point825 + +func demo825(a point825) point825 { + return a +} + +func init() { + a := point825{1, 2, 3, 4, 5} + assert("cdemo825\000", cdemo825(a) == a) + assert("demo825\000", demo825(a) == a) +} + +type point826 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int16 +} + +//go:linkname cdemo826 C.demo826 +func cdemo826(a point826) point826 + +func demo826(a point826) point826 { + return a +} + +func init() { + a := point826{1, 2, 3, 4} + assert("cdemo826\000", cdemo826(a) == a) + assert("demo826\000", demo826(a) == a) +} + +type point827 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo827 C.demo827 +func cdemo827(a point827) point827 + +func demo827(a point827) point827 { + return a +} + +func init() { + a := point827{1, 2, 3, 4, 5} + assert("cdemo827\000", cdemo827(a) == a) + assert("demo827\000", demo827(a) == a) +} + +type point828 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo828 C.demo828 +func cdemo828(a point828) point828 + +func demo828(a point828) point828 { + return a +} + +func init() { + a := point828{1, 2, 3, 4, 5} + assert("cdemo828\000", cdemo828(a) == a) + assert("demo828\000", demo828(a) == a) +} + +type point829 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo829 C.demo829 +func cdemo829(a point829) point829 + +func demo829(a point829) point829 { + return a +} + +func init() { + a := point829{1, 2, 3, 4, 5} + assert("cdemo829\000", cdemo829(a) == a) + assert("demo829\000", demo829(a) == a) +} + +type point830 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo830 C.demo830 +func cdemo830(a point830) point830 + +func demo830(a point830) point830 { + return a +} + +func init() { + a := point830{1, 2, 3, 4, 5} + assert("cdemo830\000", cdemo830(a) == a) + assert("demo830\000", demo830(a) == a) +} + +type point831 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int32 +} + +//go:linkname cdemo831 C.demo831 +func cdemo831(a point831) point831 + +func demo831(a point831) point831 { + return a +} + +func init() { + a := point831{1, 2, 3, 4} + assert("cdemo831\000", cdemo831(a) == a) + assert("demo831\000", demo831(a) == a) +} + +type point832 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo832 C.demo832 +func cdemo832(a point832) point832 + +func demo832(a point832) point832 { + return a +} + +func init() { + a := point832{1, 2, 3, 4, 5} + assert("cdemo832\000", cdemo832(a) == a) + assert("demo832\000", demo832(a) == a) +} + +type point833 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo833 C.demo833 +func cdemo833(a point833) point833 + +func demo833(a point833) point833 { + return a +} + +func init() { + a := point833{1, 2, 3, 4, 5} + assert("cdemo833\000", cdemo833(a) == a) + assert("demo833\000", demo833(a) == a) +} + +type point834 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo834 C.demo834 +func cdemo834(a point834) point834 + +func demo834(a point834) point834 { + return a +} + +func init() { + a := point834{1, 2, 3, 4, 5} + assert("cdemo834\000", cdemo834(a) == a) + assert("demo834\000", demo834(a) == a) +} + +type point835 struct { + x0 float32 + x1 int8 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo835 C.demo835 +func cdemo835(a point835) point835 + +func demo835(a point835) point835 { + return a +} + +func init() { + a := point835{1, 2, 3, 4, 5} + assert("cdemo835\000", cdemo835(a) == a) + assert("demo835\000", demo835(a) == a) +} + +type point836 struct { + x0 float32 + x1 int8 + x2 int16 + x3 float32 +} + +//go:linkname cdemo836 C.demo836 +func cdemo836(a point836) point836 + +func demo836(a point836) point836 { + return a +} + +func init() { + a := point836{1, 2, 3, 4} + assert("cdemo836\000", cdemo836(a) == a) + assert("demo836\000", demo836(a) == a) +} + +type point837 struct { + x0 float32 + x1 int8 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo837 C.demo837 +func cdemo837(a point837) point837 + +func demo837(a point837) point837 { + return a +} + +func init() { + a := point837{1, 2, 3, 4, 5} + assert("cdemo837\000", cdemo837(a) == a) + assert("demo837\000", demo837(a) == a) +} + +type point838 struct { + x0 float32 + x1 int8 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo838 C.demo838 +func cdemo838(a point838) point838 + +func demo838(a point838) point838 { + return a +} + +func init() { + a := point838{1, 2, 3, 4, 5} + assert("cdemo838\000", cdemo838(a) == a) + assert("demo838\000", demo838(a) == a) +} + +type point839 struct { + x0 float32 + x1 int8 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo839 C.demo839 +func cdemo839(a point839) point839 + +func demo839(a point839) point839 { + return a +} + +func init() { + a := point839{1, 2, 3, 4, 5} + assert("cdemo839\000", cdemo839(a) == a) + assert("demo839\000", demo839(a) == a) +} + +type point840 struct { + x0 float32 + x1 int8 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo840 C.demo840 +func cdemo840(a point840) point840 + +func demo840(a point840) point840 { + return a +} + +func init() { + a := point840{1, 2, 3, 4, 5} + assert("cdemo840\000", cdemo840(a) == a) + assert("demo840\000", demo840(a) == a) +} + +type point841 struct { + x0 float32 + x1 int8 + x2 int32 +} + +//go:linkname cdemo841 C.demo841 +func cdemo841(a point841) point841 + +func demo841(a point841) point841 { + return a +} + +func init() { + a := point841{1, 2, 3} + assert("cdemo841\000", cdemo841(a) == a) + assert("demo841\000", demo841(a) == a) +} + +type point842 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int8 +} + +//go:linkname cdemo842 C.demo842 +func cdemo842(a point842) point842 + +func demo842(a point842) point842 { + return a +} + +func init() { + a := point842{1, 2, 3, 4} + assert("cdemo842\000", cdemo842(a) == a) + assert("demo842\000", demo842(a) == a) +} + +type point843 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo843 C.demo843 +func cdemo843(a point843) point843 + +func demo843(a point843) point843 { + return a +} + +func init() { + a := point843{1, 2, 3, 4, 5} + assert("cdemo843\000", cdemo843(a) == a) + assert("demo843\000", demo843(a) == a) +} + +type point844 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo844 C.demo844 +func cdemo844(a point844) point844 + +func demo844(a point844) point844 { + return a +} + +func init() { + a := point844{1, 2, 3, 4, 5} + assert("cdemo844\000", cdemo844(a) == a) + assert("demo844\000", demo844(a) == a) +} + +type point845 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo845 C.demo845 +func cdemo845(a point845) point845 + +func demo845(a point845) point845 { + return a +} + +func init() { + a := point845{1, 2, 3, 4, 5} + assert("cdemo845\000", cdemo845(a) == a) + assert("demo845\000", demo845(a) == a) +} + +type point846 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo846 C.demo846 +func cdemo846(a point846) point846 + +func demo846(a point846) point846 { + return a +} + +func init() { + a := point846{1, 2, 3, 4, 5} + assert("cdemo846\000", cdemo846(a) == a) + assert("demo846\000", demo846(a) == a) +} + +type point847 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int16 +} + +//go:linkname cdemo847 C.demo847 +func cdemo847(a point847) point847 + +func demo847(a point847) point847 { + return a +} + +func init() { + a := point847{1, 2, 3, 4} + assert("cdemo847\000", cdemo847(a) == a) + assert("demo847\000", demo847(a) == a) +} + +type point848 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo848 C.demo848 +func cdemo848(a point848) point848 + +func demo848(a point848) point848 { + return a +} + +func init() { + a := point848{1, 2, 3, 4, 5} + assert("cdemo848\000", cdemo848(a) == a) + assert("demo848\000", demo848(a) == a) +} + +type point849 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo849 C.demo849 +func cdemo849(a point849) point849 + +func demo849(a point849) point849 { + return a +} + +func init() { + a := point849{1, 2, 3, 4, 5} + assert("cdemo849\000", cdemo849(a) == a) + assert("demo849\000", demo849(a) == a) +} + +type point850 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo850 C.demo850 +func cdemo850(a point850) point850 + +func demo850(a point850) point850 { + return a +} + +func init() { + a := point850{1, 2, 3, 4, 5} + assert("cdemo850\000", cdemo850(a) == a) + assert("demo850\000", demo850(a) == a) +} + +type point851 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo851 C.demo851 +func cdemo851(a point851) point851 + +func demo851(a point851) point851 { + return a +} + +func init() { + a := point851{1, 2, 3, 4, 5} + assert("cdemo851\000", cdemo851(a) == a) + assert("demo851\000", demo851(a) == a) +} + +type point852 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int32 +} + +//go:linkname cdemo852 C.demo852 +func cdemo852(a point852) point852 + +func demo852(a point852) point852 { + return a +} + +func init() { + a := point852{1, 2, 3, 4} + assert("cdemo852\000", cdemo852(a) == a) + assert("demo852\000", demo852(a) == a) +} + +type point853 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo853 C.demo853 +func cdemo853(a point853) point853 + +func demo853(a point853) point853 { + return a +} + +func init() { + a := point853{1, 2, 3, 4, 5} + assert("cdemo853\000", cdemo853(a) == a) + assert("demo853\000", demo853(a) == a) +} + +type point854 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo854 C.demo854 +func cdemo854(a point854) point854 + +func demo854(a point854) point854 { + return a +} + +func init() { + a := point854{1, 2, 3, 4, 5} + assert("cdemo854\000", cdemo854(a) == a) + assert("demo854\000", demo854(a) == a) +} + +type point855 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo855 C.demo855 +func cdemo855(a point855) point855 + +func demo855(a point855) point855 { + return a +} + +func init() { + a := point855{1, 2, 3, 4, 5} + assert("cdemo855\000", cdemo855(a) == a) + assert("demo855\000", demo855(a) == a) +} + +type point856 struct { + x0 float32 + x1 int8 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo856 C.demo856 +func cdemo856(a point856) point856 + +func demo856(a point856) point856 { + return a +} + +func init() { + a := point856{1, 2, 3, 4, 5} + assert("cdemo856\000", cdemo856(a) == a) + assert("demo856\000", demo856(a) == a) +} + +type point857 struct { + x0 float32 + x1 int8 + x2 int32 + x3 float32 +} + +//go:linkname cdemo857 C.demo857 +func cdemo857(a point857) point857 + +func demo857(a point857) point857 { + return a +} + +func init() { + a := point857{1, 2, 3, 4} + assert("cdemo857\000", cdemo857(a) == a) + assert("demo857\000", demo857(a) == a) +} + +type point858 struct { + x0 float32 + x1 int8 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo858 C.demo858 +func cdemo858(a point858) point858 + +func demo858(a point858) point858 { + return a +} + +func init() { + a := point858{1, 2, 3, 4, 5} + assert("cdemo858\000", cdemo858(a) == a) + assert("demo858\000", demo858(a) == a) +} + +type point859 struct { + x0 float32 + x1 int8 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo859 C.demo859 +func cdemo859(a point859) point859 + +func demo859(a point859) point859 { + return a +} + +func init() { + a := point859{1, 2, 3, 4, 5} + assert("cdemo859\000", cdemo859(a) == a) + assert("demo859\000", demo859(a) == a) +} + +type point860 struct { + x0 float32 + x1 int8 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo860 C.demo860 +func cdemo860(a point860) point860 + +func demo860(a point860) point860 { + return a +} + +func init() { + a := point860{1, 2, 3, 4, 5} + assert("cdemo860\000", cdemo860(a) == a) + assert("demo860\000", demo860(a) == a) +} + +type point861 struct { + x0 float32 + x1 int8 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo861 C.demo861 +func cdemo861(a point861) point861 + +func demo861(a point861) point861 { + return a +} + +func init() { + a := point861{1, 2, 3, 4, 5} + assert("cdemo861\000", cdemo861(a) == a) + assert("demo861\000", demo861(a) == a) +} + +type point862 struct { + x0 float32 + x1 int8 + x2 float32 +} + +//go:linkname cdemo862 C.demo862 +func cdemo862(a point862) point862 + +func demo862(a point862) point862 { + return a +} + +func init() { + a := point862{1, 2, 3} + assert("cdemo862\000", cdemo862(a) == a) + assert("demo862\000", demo862(a) == a) +} + +type point863 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int8 +} + +//go:linkname cdemo863 C.demo863 +func cdemo863(a point863) point863 + +func demo863(a point863) point863 { + return a +} + +func init() { + a := point863{1, 2, 3, 4} + assert("cdemo863\000", cdemo863(a) == a) + assert("demo863\000", demo863(a) == a) +} + +type point864 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo864 C.demo864 +func cdemo864(a point864) point864 + +func demo864(a point864) point864 { + return a +} + +func init() { + a := point864{1, 2, 3, 4, 5} + assert("cdemo864\000", cdemo864(a) == a) + assert("demo864\000", demo864(a) == a) +} + +type point865 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo865 C.demo865 +func cdemo865(a point865) point865 + +func demo865(a point865) point865 { + return a +} + +func init() { + a := point865{1, 2, 3, 4, 5} + assert("cdemo865\000", cdemo865(a) == a) + assert("demo865\000", demo865(a) == a) +} + +type point866 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo866 C.demo866 +func cdemo866(a point866) point866 + +func demo866(a point866) point866 { + return a +} + +func init() { + a := point866{1, 2, 3, 4, 5} + assert("cdemo866\000", cdemo866(a) == a) + assert("demo866\000", demo866(a) == a) +} + +type point867 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo867 C.demo867 +func cdemo867(a point867) point867 + +func demo867(a point867) point867 { + return a +} + +func init() { + a := point867{1, 2, 3, 4, 5} + assert("cdemo867\000", cdemo867(a) == a) + assert("demo867\000", demo867(a) == a) +} + +type point868 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int16 +} + +//go:linkname cdemo868 C.demo868 +func cdemo868(a point868) point868 + +func demo868(a point868) point868 { + return a +} + +func init() { + a := point868{1, 2, 3, 4} + assert("cdemo868\000", cdemo868(a) == a) + assert("demo868\000", demo868(a) == a) +} + +type point869 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo869 C.demo869 +func cdemo869(a point869) point869 + +func demo869(a point869) point869 { + return a +} + +func init() { + a := point869{1, 2, 3, 4, 5} + assert("cdemo869\000", cdemo869(a) == a) + assert("demo869\000", demo869(a) == a) +} + +type point870 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo870 C.demo870 +func cdemo870(a point870) point870 + +func demo870(a point870) point870 { + return a +} + +func init() { + a := point870{1, 2, 3, 4, 5} + assert("cdemo870\000", cdemo870(a) == a) + assert("demo870\000", demo870(a) == a) +} + +type point871 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo871 C.demo871 +func cdemo871(a point871) point871 + +func demo871(a point871) point871 { + return a +} + +func init() { + a := point871{1, 2, 3, 4, 5} + assert("cdemo871\000", cdemo871(a) == a) + assert("demo871\000", demo871(a) == a) +} + +type point872 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo872 C.demo872 +func cdemo872(a point872) point872 + +func demo872(a point872) point872 { + return a +} + +func init() { + a := point872{1, 2, 3, 4, 5} + assert("cdemo872\000", cdemo872(a) == a) + assert("demo872\000", demo872(a) == a) +} + +type point873 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int32 +} + +//go:linkname cdemo873 C.demo873 +func cdemo873(a point873) point873 + +func demo873(a point873) point873 { + return a +} + +func init() { + a := point873{1, 2, 3, 4} + assert("cdemo873\000", cdemo873(a) == a) + assert("demo873\000", demo873(a) == a) +} + +type point874 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo874 C.demo874 +func cdemo874(a point874) point874 + +func demo874(a point874) point874 { + return a +} + +func init() { + a := point874{1, 2, 3, 4, 5} + assert("cdemo874\000", cdemo874(a) == a) + assert("demo874\000", demo874(a) == a) +} + +type point875 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo875 C.demo875 +func cdemo875(a point875) point875 + +func demo875(a point875) point875 { + return a +} + +func init() { + a := point875{1, 2, 3, 4, 5} + assert("cdemo875\000", cdemo875(a) == a) + assert("demo875\000", demo875(a) == a) +} + +type point876 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo876 C.demo876 +func cdemo876(a point876) point876 + +func demo876(a point876) point876 { + return a +} + +func init() { + a := point876{1, 2, 3, 4, 5} + assert("cdemo876\000", cdemo876(a) == a) + assert("demo876\000", demo876(a) == a) +} + +type point877 struct { + x0 float32 + x1 int8 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo877 C.demo877 +func cdemo877(a point877) point877 + +func demo877(a point877) point877 { + return a +} + +func init() { + a := point877{1, 2, 3, 4, 5} + assert("cdemo877\000", cdemo877(a) == a) + assert("demo877\000", demo877(a) == a) +} + +type point878 struct { + x0 float32 + x1 int8 + x2 float32 + x3 float32 +} + +//go:linkname cdemo878 C.demo878 +func cdemo878(a point878) point878 + +func demo878(a point878) point878 { + return a +} + +func init() { + a := point878{1, 2, 3, 4} + assert("cdemo878\000", cdemo878(a) == a) + assert("demo878\000", demo878(a) == a) +} + +type point879 struct { + x0 float32 + x1 int8 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo879 C.demo879 +func cdemo879(a point879) point879 + +func demo879(a point879) point879 { + return a +} + +func init() { + a := point879{1, 2, 3, 4, 5} + assert("cdemo879\000", cdemo879(a) == a) + assert("demo879\000", demo879(a) == a) +} + +type point880 struct { + x0 float32 + x1 int8 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo880 C.demo880 +func cdemo880(a point880) point880 + +func demo880(a point880) point880 { + return a +} + +func init() { + a := point880{1, 2, 3, 4, 5} + assert("cdemo880\000", cdemo880(a) == a) + assert("demo880\000", demo880(a) == a) +} + +type point881 struct { + x0 float32 + x1 int8 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo881 C.demo881 +func cdemo881(a point881) point881 + +func demo881(a point881) point881 { + return a +} + +func init() { + a := point881{1, 2, 3, 4, 5} + assert("cdemo881\000", cdemo881(a) == a) + assert("demo881\000", demo881(a) == a) +} + +type point882 struct { + x0 float32 + x1 int8 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo882 C.demo882 +func cdemo882(a point882) point882 + +func demo882(a point882) point882 { + return a +} + +func init() { + a := point882{1, 2, 3, 4, 5} + assert("cdemo882\000", cdemo882(a) == a) + assert("demo882\000", demo882(a) == a) +} + +type point883 struct { + x0 float32 + x1 int16 + x2 int8 +} + +//go:linkname cdemo883 C.demo883 +func cdemo883(a point883) point883 + +func demo883(a point883) point883 { + return a +} + +func init() { + a := point883{1, 2, 3} + assert("cdemo883\000", cdemo883(a) == a) + assert("demo883\000", demo883(a) == a) +} + +type point884 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int8 +} + +//go:linkname cdemo884 C.demo884 +func cdemo884(a point884) point884 + +func demo884(a point884) point884 { + return a +} + +func init() { + a := point884{1, 2, 3, 4} + assert("cdemo884\000", cdemo884(a) == a) + assert("demo884\000", demo884(a) == a) +} + +type point885 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo885 C.demo885 +func cdemo885(a point885) point885 + +func demo885(a point885) point885 { + return a +} + +func init() { + a := point885{1, 2, 3, 4, 5} + assert("cdemo885\000", cdemo885(a) == a) + assert("demo885\000", demo885(a) == a) +} + +type point886 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo886 C.demo886 +func cdemo886(a point886) point886 + +func demo886(a point886) point886 { + return a +} + +func init() { + a := point886{1, 2, 3, 4, 5} + assert("cdemo886\000", cdemo886(a) == a) + assert("demo886\000", demo886(a) == a) +} + +type point887 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo887 C.demo887 +func cdemo887(a point887) point887 + +func demo887(a point887) point887 { + return a +} + +func init() { + a := point887{1, 2, 3, 4, 5} + assert("cdemo887\000", cdemo887(a) == a) + assert("demo887\000", demo887(a) == a) +} + +type point888 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo888 C.demo888 +func cdemo888(a point888) point888 + +func demo888(a point888) point888 { + return a +} + +func init() { + a := point888{1, 2, 3, 4, 5} + assert("cdemo888\000", cdemo888(a) == a) + assert("demo888\000", demo888(a) == a) +} + +type point889 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int16 +} + +//go:linkname cdemo889 C.demo889 +func cdemo889(a point889) point889 + +func demo889(a point889) point889 { + return a +} + +func init() { + a := point889{1, 2, 3, 4} + assert("cdemo889\000", cdemo889(a) == a) + assert("demo889\000", demo889(a) == a) +} + +type point890 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo890 C.demo890 +func cdemo890(a point890) point890 + +func demo890(a point890) point890 { + return a +} + +func init() { + a := point890{1, 2, 3, 4, 5} + assert("cdemo890\000", cdemo890(a) == a) + assert("demo890\000", demo890(a) == a) +} + +type point891 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo891 C.demo891 +func cdemo891(a point891) point891 + +func demo891(a point891) point891 { + return a +} + +func init() { + a := point891{1, 2, 3, 4, 5} + assert("cdemo891\000", cdemo891(a) == a) + assert("demo891\000", demo891(a) == a) +} + +type point892 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo892 C.demo892 +func cdemo892(a point892) point892 + +func demo892(a point892) point892 { + return a +} + +func init() { + a := point892{1, 2, 3, 4, 5} + assert("cdemo892\000", cdemo892(a) == a) + assert("demo892\000", demo892(a) == a) +} + +type point893 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo893 C.demo893 +func cdemo893(a point893) point893 + +func demo893(a point893) point893 { + return a +} + +func init() { + a := point893{1, 2, 3, 4, 5} + assert("cdemo893\000", cdemo893(a) == a) + assert("demo893\000", demo893(a) == a) +} + +type point894 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int32 +} + +//go:linkname cdemo894 C.demo894 +func cdemo894(a point894) point894 + +func demo894(a point894) point894 { + return a +} + +func init() { + a := point894{1, 2, 3, 4} + assert("cdemo894\000", cdemo894(a) == a) + assert("demo894\000", demo894(a) == a) +} + +type point895 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo895 C.demo895 +func cdemo895(a point895) point895 + +func demo895(a point895) point895 { + return a +} + +func init() { + a := point895{1, 2, 3, 4, 5} + assert("cdemo895\000", cdemo895(a) == a) + assert("demo895\000", demo895(a) == a) +} + +type point896 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo896 C.demo896 +func cdemo896(a point896) point896 + +func demo896(a point896) point896 { + return a +} + +func init() { + a := point896{1, 2, 3, 4, 5} + assert("cdemo896\000", cdemo896(a) == a) + assert("demo896\000", demo896(a) == a) +} + +type point897 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo897 C.demo897 +func cdemo897(a point897) point897 + +func demo897(a point897) point897 { + return a +} + +func init() { + a := point897{1, 2, 3, 4, 5} + assert("cdemo897\000", cdemo897(a) == a) + assert("demo897\000", demo897(a) == a) +} + +type point898 struct { + x0 float32 + x1 int16 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo898 C.demo898 +func cdemo898(a point898) point898 + +func demo898(a point898) point898 { + return a +} + +func init() { + a := point898{1, 2, 3, 4, 5} + assert("cdemo898\000", cdemo898(a) == a) + assert("demo898\000", demo898(a) == a) +} + +type point899 struct { + x0 float32 + x1 int16 + x2 int8 + x3 float32 +} + +//go:linkname cdemo899 C.demo899 +func cdemo899(a point899) point899 + +func demo899(a point899) point899 { + return a +} + +func init() { + a := point899{1, 2, 3, 4} + assert("cdemo899\000", cdemo899(a) == a) + assert("demo899\000", demo899(a) == a) +} + +type point900 struct { + x0 float32 + x1 int16 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo900 C.demo900 +func cdemo900(a point900) point900 + +func demo900(a point900) point900 { + return a +} + +func init() { + a := point900{1, 2, 3, 4, 5} + assert("cdemo900\000", cdemo900(a) == a) + assert("demo900\000", demo900(a) == a) +} + +type point901 struct { + x0 float32 + x1 int16 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo901 C.demo901 +func cdemo901(a point901) point901 + +func demo901(a point901) point901 { + return a +} + +func init() { + a := point901{1, 2, 3, 4, 5} + assert("cdemo901\000", cdemo901(a) == a) + assert("demo901\000", demo901(a) == a) +} + +type point902 struct { + x0 float32 + x1 int16 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo902 C.demo902 +func cdemo902(a point902) point902 + +func demo902(a point902) point902 { + return a +} + +func init() { + a := point902{1, 2, 3, 4, 5} + assert("cdemo902\000", cdemo902(a) == a) + assert("demo902\000", demo902(a) == a) +} + +type point903 struct { + x0 float32 + x1 int16 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo903 C.demo903 +func cdemo903(a point903) point903 + +func demo903(a point903) point903 { + return a +} + +func init() { + a := point903{1, 2, 3, 4, 5} + assert("cdemo903\000", cdemo903(a) == a) + assert("demo903\000", demo903(a) == a) +} + +type point904 struct { + x0 float32 + x1 int16 + x2 int16 +} + +//go:linkname cdemo904 C.demo904 +func cdemo904(a point904) point904 + +func demo904(a point904) point904 { + return a +} + +func init() { + a := point904{1, 2, 3} + assert("cdemo904\000", cdemo904(a) == a) + assert("demo904\000", demo904(a) == a) +} + +type point905 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int8 +} + +//go:linkname cdemo905 C.demo905 +func cdemo905(a point905) point905 + +func demo905(a point905) point905 { + return a +} + +func init() { + a := point905{1, 2, 3, 4} + assert("cdemo905\000", cdemo905(a) == a) + assert("demo905\000", demo905(a) == a) +} + +type point906 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo906 C.demo906 +func cdemo906(a point906) point906 + +func demo906(a point906) point906 { + return a +} + +func init() { + a := point906{1, 2, 3, 4, 5} + assert("cdemo906\000", cdemo906(a) == a) + assert("demo906\000", demo906(a) == a) +} + +type point907 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo907 C.demo907 +func cdemo907(a point907) point907 + +func demo907(a point907) point907 { + return a +} + +func init() { + a := point907{1, 2, 3, 4, 5} + assert("cdemo907\000", cdemo907(a) == a) + assert("demo907\000", demo907(a) == a) +} + +type point908 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo908 C.demo908 +func cdemo908(a point908) point908 + +func demo908(a point908) point908 { + return a +} + +func init() { + a := point908{1, 2, 3, 4, 5} + assert("cdemo908\000", cdemo908(a) == a) + assert("demo908\000", demo908(a) == a) +} + +type point909 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo909 C.demo909 +func cdemo909(a point909) point909 + +func demo909(a point909) point909 { + return a +} + +func init() { + a := point909{1, 2, 3, 4, 5} + assert("cdemo909\000", cdemo909(a) == a) + assert("demo909\000", demo909(a) == a) +} + +type point910 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int16 +} + +//go:linkname cdemo910 C.demo910 +func cdemo910(a point910) point910 + +func demo910(a point910) point910 { + return a +} + +func init() { + a := point910{1, 2, 3, 4} + assert("cdemo910\000", cdemo910(a) == a) + assert("demo910\000", demo910(a) == a) +} + +type point911 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo911 C.demo911 +func cdemo911(a point911) point911 + +func demo911(a point911) point911 { + return a +} + +func init() { + a := point911{1, 2, 3, 4, 5} + assert("cdemo911\000", cdemo911(a) == a) + assert("demo911\000", demo911(a) == a) +} + +type point912 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo912 C.demo912 +func cdemo912(a point912) point912 + +func demo912(a point912) point912 { + return a +} + +func init() { + a := point912{1, 2, 3, 4, 5} + assert("cdemo912\000", cdemo912(a) == a) + assert("demo912\000", demo912(a) == a) +} + +type point913 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo913 C.demo913 +func cdemo913(a point913) point913 + +func demo913(a point913) point913 { + return a +} + +func init() { + a := point913{1, 2, 3, 4, 5} + assert("cdemo913\000", cdemo913(a) == a) + assert("demo913\000", demo913(a) == a) +} + +type point914 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo914 C.demo914 +func cdemo914(a point914) point914 + +func demo914(a point914) point914 { + return a +} + +func init() { + a := point914{1, 2, 3, 4, 5} + assert("cdemo914\000", cdemo914(a) == a) + assert("demo914\000", demo914(a) == a) +} + +type point915 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int32 +} + +//go:linkname cdemo915 C.demo915 +func cdemo915(a point915) point915 + +func demo915(a point915) point915 { + return a +} + +func init() { + a := point915{1, 2, 3, 4} + assert("cdemo915\000", cdemo915(a) == a) + assert("demo915\000", demo915(a) == a) +} + +type point916 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo916 C.demo916 +func cdemo916(a point916) point916 + +func demo916(a point916) point916 { + return a +} + +func init() { + a := point916{1, 2, 3, 4, 5} + assert("cdemo916\000", cdemo916(a) == a) + assert("demo916\000", demo916(a) == a) +} + +type point917 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo917 C.demo917 +func cdemo917(a point917) point917 + +func demo917(a point917) point917 { + return a +} + +func init() { + a := point917{1, 2, 3, 4, 5} + assert("cdemo917\000", cdemo917(a) == a) + assert("demo917\000", demo917(a) == a) +} + +type point918 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo918 C.demo918 +func cdemo918(a point918) point918 + +func demo918(a point918) point918 { + return a +} + +func init() { + a := point918{1, 2, 3, 4, 5} + assert("cdemo918\000", cdemo918(a) == a) + assert("demo918\000", demo918(a) == a) +} + +type point919 struct { + x0 float32 + x1 int16 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo919 C.demo919 +func cdemo919(a point919) point919 + +func demo919(a point919) point919 { + return a +} + +func init() { + a := point919{1, 2, 3, 4, 5} + assert("cdemo919\000", cdemo919(a) == a) + assert("demo919\000", demo919(a) == a) +} + +type point920 struct { + x0 float32 + x1 int16 + x2 int16 + x3 float32 +} + +//go:linkname cdemo920 C.demo920 +func cdemo920(a point920) point920 + +func demo920(a point920) point920 { + return a +} + +func init() { + a := point920{1, 2, 3, 4} + assert("cdemo920\000", cdemo920(a) == a) + assert("demo920\000", demo920(a) == a) +} + +type point921 struct { + x0 float32 + x1 int16 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo921 C.demo921 +func cdemo921(a point921) point921 + +func demo921(a point921) point921 { + return a +} + +func init() { + a := point921{1, 2, 3, 4, 5} + assert("cdemo921\000", cdemo921(a) == a) + assert("demo921\000", demo921(a) == a) +} + +type point922 struct { + x0 float32 + x1 int16 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo922 C.demo922 +func cdemo922(a point922) point922 + +func demo922(a point922) point922 { + return a +} + +func init() { + a := point922{1, 2, 3, 4, 5} + assert("cdemo922\000", cdemo922(a) == a) + assert("demo922\000", demo922(a) == a) +} + +type point923 struct { + x0 float32 + x1 int16 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo923 C.demo923 +func cdemo923(a point923) point923 + +func demo923(a point923) point923 { + return a +} + +func init() { + a := point923{1, 2, 3, 4, 5} + assert("cdemo923\000", cdemo923(a) == a) + assert("demo923\000", demo923(a) == a) +} + +type point924 struct { + x0 float32 + x1 int16 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo924 C.demo924 +func cdemo924(a point924) point924 + +func demo924(a point924) point924 { + return a +} + +func init() { + a := point924{1, 2, 3, 4, 5} + assert("cdemo924\000", cdemo924(a) == a) + assert("demo924\000", demo924(a) == a) +} + +type point925 struct { + x0 float32 + x1 int16 + x2 int32 +} + +//go:linkname cdemo925 C.demo925 +func cdemo925(a point925) point925 + +func demo925(a point925) point925 { + return a +} + +func init() { + a := point925{1, 2, 3} + assert("cdemo925\000", cdemo925(a) == a) + assert("demo925\000", demo925(a) == a) +} + +type point926 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int8 +} + +//go:linkname cdemo926 C.demo926 +func cdemo926(a point926) point926 + +func demo926(a point926) point926 { + return a +} + +func init() { + a := point926{1, 2, 3, 4} + assert("cdemo926\000", cdemo926(a) == a) + assert("demo926\000", demo926(a) == a) +} + +type point927 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo927 C.demo927 +func cdemo927(a point927) point927 + +func demo927(a point927) point927 { + return a +} + +func init() { + a := point927{1, 2, 3, 4, 5} + assert("cdemo927\000", cdemo927(a) == a) + assert("demo927\000", demo927(a) == a) +} + +type point928 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo928 C.demo928 +func cdemo928(a point928) point928 + +func demo928(a point928) point928 { + return a +} + +func init() { + a := point928{1, 2, 3, 4, 5} + assert("cdemo928\000", cdemo928(a) == a) + assert("demo928\000", demo928(a) == a) +} + +type point929 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo929 C.demo929 +func cdemo929(a point929) point929 + +func demo929(a point929) point929 { + return a +} + +func init() { + a := point929{1, 2, 3, 4, 5} + assert("cdemo929\000", cdemo929(a) == a) + assert("demo929\000", demo929(a) == a) +} + +type point930 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo930 C.demo930 +func cdemo930(a point930) point930 + +func demo930(a point930) point930 { + return a +} + +func init() { + a := point930{1, 2, 3, 4, 5} + assert("cdemo930\000", cdemo930(a) == a) + assert("demo930\000", demo930(a) == a) +} + +type point931 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int16 +} + +//go:linkname cdemo931 C.demo931 +func cdemo931(a point931) point931 + +func demo931(a point931) point931 { + return a +} + +func init() { + a := point931{1, 2, 3, 4} + assert("cdemo931\000", cdemo931(a) == a) + assert("demo931\000", demo931(a) == a) +} + +type point932 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo932 C.demo932 +func cdemo932(a point932) point932 + +func demo932(a point932) point932 { + return a +} + +func init() { + a := point932{1, 2, 3, 4, 5} + assert("cdemo932\000", cdemo932(a) == a) + assert("demo932\000", demo932(a) == a) +} + +type point933 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo933 C.demo933 +func cdemo933(a point933) point933 + +func demo933(a point933) point933 { + return a +} + +func init() { + a := point933{1, 2, 3, 4, 5} + assert("cdemo933\000", cdemo933(a) == a) + assert("demo933\000", demo933(a) == a) +} + +type point934 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo934 C.demo934 +func cdemo934(a point934) point934 + +func demo934(a point934) point934 { + return a +} + +func init() { + a := point934{1, 2, 3, 4, 5} + assert("cdemo934\000", cdemo934(a) == a) + assert("demo934\000", demo934(a) == a) +} + +type point935 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo935 C.demo935 +func cdemo935(a point935) point935 + +func demo935(a point935) point935 { + return a +} + +func init() { + a := point935{1, 2, 3, 4, 5} + assert("cdemo935\000", cdemo935(a) == a) + assert("demo935\000", demo935(a) == a) +} + +type point936 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int32 +} + +//go:linkname cdemo936 C.demo936 +func cdemo936(a point936) point936 + +func demo936(a point936) point936 { + return a +} + +func init() { + a := point936{1, 2, 3, 4} + assert("cdemo936\000", cdemo936(a) == a) + assert("demo936\000", demo936(a) == a) +} + +type point937 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo937 C.demo937 +func cdemo937(a point937) point937 + +func demo937(a point937) point937 { + return a +} + +func init() { + a := point937{1, 2, 3, 4, 5} + assert("cdemo937\000", cdemo937(a) == a) + assert("demo937\000", demo937(a) == a) +} + +type point938 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo938 C.demo938 +func cdemo938(a point938) point938 + +func demo938(a point938) point938 { + return a +} + +func init() { + a := point938{1, 2, 3, 4, 5} + assert("cdemo938\000", cdemo938(a) == a) + assert("demo938\000", demo938(a) == a) +} + +type point939 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo939 C.demo939 +func cdemo939(a point939) point939 + +func demo939(a point939) point939 { + return a +} + +func init() { + a := point939{1, 2, 3, 4, 5} + assert("cdemo939\000", cdemo939(a) == a) + assert("demo939\000", demo939(a) == a) +} + +type point940 struct { + x0 float32 + x1 int16 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo940 C.demo940 +func cdemo940(a point940) point940 + +func demo940(a point940) point940 { + return a +} + +func init() { + a := point940{1, 2, 3, 4, 5} + assert("cdemo940\000", cdemo940(a) == a) + assert("demo940\000", demo940(a) == a) +} + +type point941 struct { + x0 float32 + x1 int16 + x2 int32 + x3 float32 +} + +//go:linkname cdemo941 C.demo941 +func cdemo941(a point941) point941 + +func demo941(a point941) point941 { + return a +} + +func init() { + a := point941{1, 2, 3, 4} + assert("cdemo941\000", cdemo941(a) == a) + assert("demo941\000", demo941(a) == a) +} + +type point942 struct { + x0 float32 + x1 int16 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo942 C.demo942 +func cdemo942(a point942) point942 + +func demo942(a point942) point942 { + return a +} + +func init() { + a := point942{1, 2, 3, 4, 5} + assert("cdemo942\000", cdemo942(a) == a) + assert("demo942\000", demo942(a) == a) +} + +type point943 struct { + x0 float32 + x1 int16 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo943 C.demo943 +func cdemo943(a point943) point943 + +func demo943(a point943) point943 { + return a +} + +func init() { + a := point943{1, 2, 3, 4, 5} + assert("cdemo943\000", cdemo943(a) == a) + assert("demo943\000", demo943(a) == a) +} + +type point944 struct { + x0 float32 + x1 int16 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo944 C.demo944 +func cdemo944(a point944) point944 + +func demo944(a point944) point944 { + return a +} + +func init() { + a := point944{1, 2, 3, 4, 5} + assert("cdemo944\000", cdemo944(a) == a) + assert("demo944\000", demo944(a) == a) +} + +type point945 struct { + x0 float32 + x1 int16 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo945 C.demo945 +func cdemo945(a point945) point945 + +func demo945(a point945) point945 { + return a +} + +func init() { + a := point945{1, 2, 3, 4, 5} + assert("cdemo945\000", cdemo945(a) == a) + assert("demo945\000", demo945(a) == a) +} + +type point946 struct { + x0 float32 + x1 int16 + x2 float32 +} + +//go:linkname cdemo946 C.demo946 +func cdemo946(a point946) point946 + +func demo946(a point946) point946 { + return a +} + +func init() { + a := point946{1, 2, 3} + assert("cdemo946\000", cdemo946(a) == a) + assert("demo946\000", demo946(a) == a) +} + +type point947 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int8 +} + +//go:linkname cdemo947 C.demo947 +func cdemo947(a point947) point947 + +func demo947(a point947) point947 { + return a +} + +func init() { + a := point947{1, 2, 3, 4} + assert("cdemo947\000", cdemo947(a) == a) + assert("demo947\000", demo947(a) == a) +} + +type point948 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo948 C.demo948 +func cdemo948(a point948) point948 + +func demo948(a point948) point948 { + return a +} + +func init() { + a := point948{1, 2, 3, 4, 5} + assert("cdemo948\000", cdemo948(a) == a) + assert("demo948\000", demo948(a) == a) +} + +type point949 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo949 C.demo949 +func cdemo949(a point949) point949 + +func demo949(a point949) point949 { + return a +} + +func init() { + a := point949{1, 2, 3, 4, 5} + assert("cdemo949\000", cdemo949(a) == a) + assert("demo949\000", demo949(a) == a) +} + +type point950 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo950 C.demo950 +func cdemo950(a point950) point950 + +func demo950(a point950) point950 { + return a +} + +func init() { + a := point950{1, 2, 3, 4, 5} + assert("cdemo950\000", cdemo950(a) == a) + assert("demo950\000", demo950(a) == a) +} + +type point951 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo951 C.demo951 +func cdemo951(a point951) point951 + +func demo951(a point951) point951 { + return a +} + +func init() { + a := point951{1, 2, 3, 4, 5} + assert("cdemo951\000", cdemo951(a) == a) + assert("demo951\000", demo951(a) == a) +} + +type point952 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int16 +} + +//go:linkname cdemo952 C.demo952 +func cdemo952(a point952) point952 + +func demo952(a point952) point952 { + return a +} + +func init() { + a := point952{1, 2, 3, 4} + assert("cdemo952\000", cdemo952(a) == a) + assert("demo952\000", demo952(a) == a) +} + +type point953 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo953 C.demo953 +func cdemo953(a point953) point953 + +func demo953(a point953) point953 { + return a +} + +func init() { + a := point953{1, 2, 3, 4, 5} + assert("cdemo953\000", cdemo953(a) == a) + assert("demo953\000", demo953(a) == a) +} + +type point954 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo954 C.demo954 +func cdemo954(a point954) point954 + +func demo954(a point954) point954 { + return a +} + +func init() { + a := point954{1, 2, 3, 4, 5} + assert("cdemo954\000", cdemo954(a) == a) + assert("demo954\000", demo954(a) == a) +} + +type point955 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo955 C.demo955 +func cdemo955(a point955) point955 + +func demo955(a point955) point955 { + return a +} + +func init() { + a := point955{1, 2, 3, 4, 5} + assert("cdemo955\000", cdemo955(a) == a) + assert("demo955\000", demo955(a) == a) +} + +type point956 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo956 C.demo956 +func cdemo956(a point956) point956 + +func demo956(a point956) point956 { + return a +} + +func init() { + a := point956{1, 2, 3, 4, 5} + assert("cdemo956\000", cdemo956(a) == a) + assert("demo956\000", demo956(a) == a) +} + +type point957 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int32 +} + +//go:linkname cdemo957 C.demo957 +func cdemo957(a point957) point957 + +func demo957(a point957) point957 { + return a +} + +func init() { + a := point957{1, 2, 3, 4} + assert("cdemo957\000", cdemo957(a) == a) + assert("demo957\000", demo957(a) == a) +} + +type point958 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo958 C.demo958 +func cdemo958(a point958) point958 + +func demo958(a point958) point958 { + return a +} + +func init() { + a := point958{1, 2, 3, 4, 5} + assert("cdemo958\000", cdemo958(a) == a) + assert("demo958\000", demo958(a) == a) +} + +type point959 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo959 C.demo959 +func cdemo959(a point959) point959 + +func demo959(a point959) point959 { + return a +} + +func init() { + a := point959{1, 2, 3, 4, 5} + assert("cdemo959\000", cdemo959(a) == a) + assert("demo959\000", demo959(a) == a) +} + +type point960 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo960 C.demo960 +func cdemo960(a point960) point960 + +func demo960(a point960) point960 { + return a +} + +func init() { + a := point960{1, 2, 3, 4, 5} + assert("cdemo960\000", cdemo960(a) == a) + assert("demo960\000", demo960(a) == a) +} + +type point961 struct { + x0 float32 + x1 int16 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo961 C.demo961 +func cdemo961(a point961) point961 + +func demo961(a point961) point961 { + return a +} + +func init() { + a := point961{1, 2, 3, 4, 5} + assert("cdemo961\000", cdemo961(a) == a) + assert("demo961\000", demo961(a) == a) +} + +type point962 struct { + x0 float32 + x1 int16 + x2 float32 + x3 float32 +} + +//go:linkname cdemo962 C.demo962 +func cdemo962(a point962) point962 + +func demo962(a point962) point962 { + return a +} + +func init() { + a := point962{1, 2, 3, 4} + assert("cdemo962\000", cdemo962(a) == a) + assert("demo962\000", demo962(a) == a) +} + +type point963 struct { + x0 float32 + x1 int16 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo963 C.demo963 +func cdemo963(a point963) point963 + +func demo963(a point963) point963 { + return a +} + +func init() { + a := point963{1, 2, 3, 4, 5} + assert("cdemo963\000", cdemo963(a) == a) + assert("demo963\000", demo963(a) == a) +} + +type point964 struct { + x0 float32 + x1 int16 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo964 C.demo964 +func cdemo964(a point964) point964 + +func demo964(a point964) point964 { + return a +} + +func init() { + a := point964{1, 2, 3, 4, 5} + assert("cdemo964\000", cdemo964(a) == a) + assert("demo964\000", demo964(a) == a) +} + +type point965 struct { + x0 float32 + x1 int16 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo965 C.demo965 +func cdemo965(a point965) point965 + +func demo965(a point965) point965 { + return a +} + +func init() { + a := point965{1, 2, 3, 4, 5} + assert("cdemo965\000", cdemo965(a) == a) + assert("demo965\000", demo965(a) == a) +} + +type point966 struct { + x0 float32 + x1 int16 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo966 C.demo966 +func cdemo966(a point966) point966 + +func demo966(a point966) point966 { + return a +} + +func init() { + a := point966{1, 2, 3, 4, 5} + assert("cdemo966\000", cdemo966(a) == a) + assert("demo966\000", demo966(a) == a) +} + +type point967 struct { + x0 float32 + x1 int32 + x2 int8 +} + +//go:linkname cdemo967 C.demo967 +func cdemo967(a point967) point967 + +func demo967(a point967) point967 { + return a +} + +func init() { + a := point967{1, 2, 3} + assert("cdemo967\000", cdemo967(a) == a) + assert("demo967\000", demo967(a) == a) +} + +type point968 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int8 +} + +//go:linkname cdemo968 C.demo968 +func cdemo968(a point968) point968 + +func demo968(a point968) point968 { + return a +} + +func init() { + a := point968{1, 2, 3, 4} + assert("cdemo968\000", cdemo968(a) == a) + assert("demo968\000", demo968(a) == a) +} + +type point969 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int8 + x4 int8 +} + +//go:linkname cdemo969 C.demo969 +func cdemo969(a point969) point969 + +func demo969(a point969) point969 { + return a +} + +func init() { + a := point969{1, 2, 3, 4, 5} + assert("cdemo969\000", cdemo969(a) == a) + assert("demo969\000", demo969(a) == a) +} + +type point970 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int8 + x4 int16 +} + +//go:linkname cdemo970 C.demo970 +func cdemo970(a point970) point970 + +func demo970(a point970) point970 { + return a +} + +func init() { + a := point970{1, 2, 3, 4, 5} + assert("cdemo970\000", cdemo970(a) == a) + assert("demo970\000", demo970(a) == a) +} + +type point971 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int8 + x4 int32 +} + +//go:linkname cdemo971 C.demo971 +func cdemo971(a point971) point971 + +func demo971(a point971) point971 { + return a +} + +func init() { + a := point971{1, 2, 3, 4, 5} + assert("cdemo971\000", cdemo971(a) == a) + assert("demo971\000", demo971(a) == a) +} + +type point972 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int8 + x4 float32 +} + +//go:linkname cdemo972 C.demo972 +func cdemo972(a point972) point972 + +func demo972(a point972) point972 { + return a +} + +func init() { + a := point972{1, 2, 3, 4, 5} + assert("cdemo972\000", cdemo972(a) == a) + assert("demo972\000", demo972(a) == a) +} + +type point973 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int16 +} + +//go:linkname cdemo973 C.demo973 +func cdemo973(a point973) point973 + +func demo973(a point973) point973 { + return a +} + +func init() { + a := point973{1, 2, 3, 4} + assert("cdemo973\000", cdemo973(a) == a) + assert("demo973\000", demo973(a) == a) +} + +type point974 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int16 + x4 int8 +} + +//go:linkname cdemo974 C.demo974 +func cdemo974(a point974) point974 + +func demo974(a point974) point974 { + return a +} + +func init() { + a := point974{1, 2, 3, 4, 5} + assert("cdemo974\000", cdemo974(a) == a) + assert("demo974\000", demo974(a) == a) +} + +type point975 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int16 + x4 int16 +} + +//go:linkname cdemo975 C.demo975 +func cdemo975(a point975) point975 + +func demo975(a point975) point975 { + return a +} + +func init() { + a := point975{1, 2, 3, 4, 5} + assert("cdemo975\000", cdemo975(a) == a) + assert("demo975\000", demo975(a) == a) +} + +type point976 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int16 + x4 int32 +} + +//go:linkname cdemo976 C.demo976 +func cdemo976(a point976) point976 + +func demo976(a point976) point976 { + return a +} + +func init() { + a := point976{1, 2, 3, 4, 5} + assert("cdemo976\000", cdemo976(a) == a) + assert("demo976\000", demo976(a) == a) +} + +type point977 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int16 + x4 float32 +} + +//go:linkname cdemo977 C.demo977 +func cdemo977(a point977) point977 + +func demo977(a point977) point977 { + return a +} + +func init() { + a := point977{1, 2, 3, 4, 5} + assert("cdemo977\000", cdemo977(a) == a) + assert("demo977\000", demo977(a) == a) +} + +type point978 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int32 +} + +//go:linkname cdemo978 C.demo978 +func cdemo978(a point978) point978 + +func demo978(a point978) point978 { + return a +} + +func init() { + a := point978{1, 2, 3, 4} + assert("cdemo978\000", cdemo978(a) == a) + assert("demo978\000", demo978(a) == a) +} + +type point979 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int32 + x4 int8 +} + +//go:linkname cdemo979 C.demo979 +func cdemo979(a point979) point979 + +func demo979(a point979) point979 { + return a +} + +func init() { + a := point979{1, 2, 3, 4, 5} + assert("cdemo979\000", cdemo979(a) == a) + assert("demo979\000", demo979(a) == a) +} + +type point980 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int32 + x4 int16 +} + +//go:linkname cdemo980 C.demo980 +func cdemo980(a point980) point980 + +func demo980(a point980) point980 { + return a +} + +func init() { + a := point980{1, 2, 3, 4, 5} + assert("cdemo980\000", cdemo980(a) == a) + assert("demo980\000", demo980(a) == a) +} + +type point981 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int32 + x4 int32 +} + +//go:linkname cdemo981 C.demo981 +func cdemo981(a point981) point981 + +func demo981(a point981) point981 { + return a +} + +func init() { + a := point981{1, 2, 3, 4, 5} + assert("cdemo981\000", cdemo981(a) == a) + assert("demo981\000", demo981(a) == a) +} + +type point982 struct { + x0 float32 + x1 int32 + x2 int8 + x3 int32 + x4 float32 +} + +//go:linkname cdemo982 C.demo982 +func cdemo982(a point982) point982 + +func demo982(a point982) point982 { + return a +} + +func init() { + a := point982{1, 2, 3, 4, 5} + assert("cdemo982\000", cdemo982(a) == a) + assert("demo982\000", demo982(a) == a) +} + +type point983 struct { + x0 float32 + x1 int32 + x2 int8 + x3 float32 +} + +//go:linkname cdemo983 C.demo983 +func cdemo983(a point983) point983 + +func demo983(a point983) point983 { + return a +} + +func init() { + a := point983{1, 2, 3, 4} + assert("cdemo983\000", cdemo983(a) == a) + assert("demo983\000", demo983(a) == a) +} + +type point984 struct { + x0 float32 + x1 int32 + x2 int8 + x3 float32 + x4 int8 +} + +//go:linkname cdemo984 C.demo984 +func cdemo984(a point984) point984 + +func demo984(a point984) point984 { + return a +} + +func init() { + a := point984{1, 2, 3, 4, 5} + assert("cdemo984\000", cdemo984(a) == a) + assert("demo984\000", demo984(a) == a) +} + +type point985 struct { + x0 float32 + x1 int32 + x2 int8 + x3 float32 + x4 int16 +} + +//go:linkname cdemo985 C.demo985 +func cdemo985(a point985) point985 + +func demo985(a point985) point985 { + return a +} + +func init() { + a := point985{1, 2, 3, 4, 5} + assert("cdemo985\000", cdemo985(a) == a) + assert("demo985\000", demo985(a) == a) +} + +type point986 struct { + x0 float32 + x1 int32 + x2 int8 + x3 float32 + x4 int32 +} + +//go:linkname cdemo986 C.demo986 +func cdemo986(a point986) point986 + +func demo986(a point986) point986 { + return a +} + +func init() { + a := point986{1, 2, 3, 4, 5} + assert("cdemo986\000", cdemo986(a) == a) + assert("demo986\000", demo986(a) == a) +} + +type point987 struct { + x0 float32 + x1 int32 + x2 int8 + x3 float32 + x4 float32 +} + +//go:linkname cdemo987 C.demo987 +func cdemo987(a point987) point987 + +func demo987(a point987) point987 { + return a +} + +func init() { + a := point987{1, 2, 3, 4, 5} + assert("cdemo987\000", cdemo987(a) == a) + assert("demo987\000", demo987(a) == a) +} + +type point988 struct { + x0 float32 + x1 int32 + x2 int16 +} + +//go:linkname cdemo988 C.demo988 +func cdemo988(a point988) point988 + +func demo988(a point988) point988 { + return a +} + +func init() { + a := point988{1, 2, 3} + assert("cdemo988\000", cdemo988(a) == a) + assert("demo988\000", demo988(a) == a) +} + +type point989 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int8 +} + +//go:linkname cdemo989 C.demo989 +func cdemo989(a point989) point989 + +func demo989(a point989) point989 { + return a +} + +func init() { + a := point989{1, 2, 3, 4} + assert("cdemo989\000", cdemo989(a) == a) + assert("demo989\000", demo989(a) == a) +} + +type point990 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int8 + x4 int8 +} + +//go:linkname cdemo990 C.demo990 +func cdemo990(a point990) point990 + +func demo990(a point990) point990 { + return a +} + +func init() { + a := point990{1, 2, 3, 4, 5} + assert("cdemo990\000", cdemo990(a) == a) + assert("demo990\000", demo990(a) == a) +} + +type point991 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int8 + x4 int16 +} + +//go:linkname cdemo991 C.demo991 +func cdemo991(a point991) point991 + +func demo991(a point991) point991 { + return a +} + +func init() { + a := point991{1, 2, 3, 4, 5} + assert("cdemo991\000", cdemo991(a) == a) + assert("demo991\000", demo991(a) == a) +} + +type point992 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int8 + x4 int32 +} + +//go:linkname cdemo992 C.demo992 +func cdemo992(a point992) point992 + +func demo992(a point992) point992 { + return a +} + +func init() { + a := point992{1, 2, 3, 4, 5} + assert("cdemo992\000", cdemo992(a) == a) + assert("demo992\000", demo992(a) == a) +} + +type point993 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int8 + x4 float32 +} + +//go:linkname cdemo993 C.demo993 +func cdemo993(a point993) point993 + +func demo993(a point993) point993 { + return a +} + +func init() { + a := point993{1, 2, 3, 4, 5} + assert("cdemo993\000", cdemo993(a) == a) + assert("demo993\000", demo993(a) == a) +} + +type point994 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int16 +} + +//go:linkname cdemo994 C.demo994 +func cdemo994(a point994) point994 + +func demo994(a point994) point994 { + return a +} + +func init() { + a := point994{1, 2, 3, 4} + assert("cdemo994\000", cdemo994(a) == a) + assert("demo994\000", demo994(a) == a) +} + +type point995 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int16 + x4 int8 +} + +//go:linkname cdemo995 C.demo995 +func cdemo995(a point995) point995 + +func demo995(a point995) point995 { + return a +} + +func init() { + a := point995{1, 2, 3, 4, 5} + assert("cdemo995\000", cdemo995(a) == a) + assert("demo995\000", demo995(a) == a) +} + +type point996 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int16 + x4 int16 +} + +//go:linkname cdemo996 C.demo996 +func cdemo996(a point996) point996 + +func demo996(a point996) point996 { + return a +} + +func init() { + a := point996{1, 2, 3, 4, 5} + assert("cdemo996\000", cdemo996(a) == a) + assert("demo996\000", demo996(a) == a) +} + +type point997 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int16 + x4 int32 +} + +//go:linkname cdemo997 C.demo997 +func cdemo997(a point997) point997 + +func demo997(a point997) point997 { + return a +} + +func init() { + a := point997{1, 2, 3, 4, 5} + assert("cdemo997\000", cdemo997(a) == a) + assert("demo997\000", demo997(a) == a) +} + +type point998 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int16 + x4 float32 +} + +//go:linkname cdemo998 C.demo998 +func cdemo998(a point998) point998 + +func demo998(a point998) point998 { + return a +} + +func init() { + a := point998{1, 2, 3, 4, 5} + assert("cdemo998\000", cdemo998(a) == a) + assert("demo998\000", demo998(a) == a) +} + +type point999 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int32 +} + +//go:linkname cdemo999 C.demo999 +func cdemo999(a point999) point999 + +func demo999(a point999) point999 { + return a +} + +func init() { + a := point999{1, 2, 3, 4} + assert("cdemo999\000", cdemo999(a) == a) + assert("demo999\000", demo999(a) == a) +} + +type point1000 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int32 + x4 int8 +} + +//go:linkname cdemo1000 C.demo1000 +func cdemo1000(a point1000) point1000 + +func demo1000(a point1000) point1000 { + return a +} + +func init() { + a := point1000{1, 2, 3, 4, 5} + assert("cdemo1000\000", cdemo1000(a) == a) + assert("demo1000\000", demo1000(a) == a) +} + +type point1001 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int32 + x4 int16 +} + +//go:linkname cdemo1001 C.demo1001 +func cdemo1001(a point1001) point1001 + +func demo1001(a point1001) point1001 { + return a +} + +func init() { + a := point1001{1, 2, 3, 4, 5} + assert("cdemo1001\000", cdemo1001(a) == a) + assert("demo1001\000", demo1001(a) == a) +} + +type point1002 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int32 + x4 int32 +} + +//go:linkname cdemo1002 C.demo1002 +func cdemo1002(a point1002) point1002 + +func demo1002(a point1002) point1002 { + return a +} + +func init() { + a := point1002{1, 2, 3, 4, 5} + assert("cdemo1002\000", cdemo1002(a) == a) + assert("demo1002\000", demo1002(a) == a) +} + +type point1003 struct { + x0 float32 + x1 int32 + x2 int16 + x3 int32 + x4 float32 +} + +//go:linkname cdemo1003 C.demo1003 +func cdemo1003(a point1003) point1003 + +func demo1003(a point1003) point1003 { + return a +} + +func init() { + a := point1003{1, 2, 3, 4, 5} + assert("cdemo1003\000", cdemo1003(a) == a) + assert("demo1003\000", demo1003(a) == a) +} + +type point1004 struct { + x0 float32 + x1 int32 + x2 int16 + x3 float32 +} + +//go:linkname cdemo1004 C.demo1004 +func cdemo1004(a point1004) point1004 + +func demo1004(a point1004) point1004 { + return a +} + +func init() { + a := point1004{1, 2, 3, 4} + assert("cdemo1004\000", cdemo1004(a) == a) + assert("demo1004\000", demo1004(a) == a) +} + +type point1005 struct { + x0 float32 + x1 int32 + x2 int16 + x3 float32 + x4 int8 +} + +//go:linkname cdemo1005 C.demo1005 +func cdemo1005(a point1005) point1005 + +func demo1005(a point1005) point1005 { + return a +} + +func init() { + a := point1005{1, 2, 3, 4, 5} + assert("cdemo1005\000", cdemo1005(a) == a) + assert("demo1005\000", demo1005(a) == a) +} + +type point1006 struct { + x0 float32 + x1 int32 + x2 int16 + x3 float32 + x4 int16 +} + +//go:linkname cdemo1006 C.demo1006 +func cdemo1006(a point1006) point1006 + +func demo1006(a point1006) point1006 { + return a +} + +func init() { + a := point1006{1, 2, 3, 4, 5} + assert("cdemo1006\000", cdemo1006(a) == a) + assert("demo1006\000", demo1006(a) == a) +} + +type point1007 struct { + x0 float32 + x1 int32 + x2 int16 + x3 float32 + x4 int32 +} + +//go:linkname cdemo1007 C.demo1007 +func cdemo1007(a point1007) point1007 + +func demo1007(a point1007) point1007 { + return a +} + +func init() { + a := point1007{1, 2, 3, 4, 5} + assert("cdemo1007\000", cdemo1007(a) == a) + assert("demo1007\000", demo1007(a) == a) +} + +type point1008 struct { + x0 float32 + x1 int32 + x2 int16 + x3 float32 + x4 float32 +} + +//go:linkname cdemo1008 C.demo1008 +func cdemo1008(a point1008) point1008 + +func demo1008(a point1008) point1008 { + return a +} + +func init() { + a := point1008{1, 2, 3, 4, 5} + assert("cdemo1008\000", cdemo1008(a) == a) + assert("demo1008\000", demo1008(a) == a) +} + +type point1009 struct { + x0 float32 + x1 int32 + x2 int32 +} + +//go:linkname cdemo1009 C.demo1009 +func cdemo1009(a point1009) point1009 + +func demo1009(a point1009) point1009 { + return a +} + +func init() { + a := point1009{1, 2, 3} + assert("cdemo1009\000", cdemo1009(a) == a) + assert("demo1009\000", demo1009(a) == a) +} + +type point1010 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int8 +} + +//go:linkname cdemo1010 C.demo1010 +func cdemo1010(a point1010) point1010 + +func demo1010(a point1010) point1010 { + return a +} + +func init() { + a := point1010{1, 2, 3, 4} + assert("cdemo1010\000", cdemo1010(a) == a) + assert("demo1010\000", demo1010(a) == a) +} + +type point1011 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo1011 C.demo1011 +func cdemo1011(a point1011) point1011 + +func demo1011(a point1011) point1011 { + return a +} + +func init() { + a := point1011{1, 2, 3, 4, 5} + assert("cdemo1011\000", cdemo1011(a) == a) + assert("demo1011\000", demo1011(a) == a) +} + +type point1012 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo1012 C.demo1012 +func cdemo1012(a point1012) point1012 + +func demo1012(a point1012) point1012 { + return a +} + +func init() { + a := point1012{1, 2, 3, 4, 5} + assert("cdemo1012\000", cdemo1012(a) == a) + assert("demo1012\000", demo1012(a) == a) +} + +type point1013 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo1013 C.demo1013 +func cdemo1013(a point1013) point1013 + +func demo1013(a point1013) point1013 { + return a +} + +func init() { + a := point1013{1, 2, 3, 4, 5} + assert("cdemo1013\000", cdemo1013(a) == a) + assert("demo1013\000", demo1013(a) == a) +} + +type point1014 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo1014 C.demo1014 +func cdemo1014(a point1014) point1014 + +func demo1014(a point1014) point1014 { + return a +} + +func init() { + a := point1014{1, 2, 3, 4, 5} + assert("cdemo1014\000", cdemo1014(a) == a) + assert("demo1014\000", demo1014(a) == a) +} + +type point1015 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int16 +} + +//go:linkname cdemo1015 C.demo1015 +func cdemo1015(a point1015) point1015 + +func demo1015(a point1015) point1015 { + return a +} + +func init() { + a := point1015{1, 2, 3, 4} + assert("cdemo1015\000", cdemo1015(a) == a) + assert("demo1015\000", demo1015(a) == a) +} + +type point1016 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo1016 C.demo1016 +func cdemo1016(a point1016) point1016 + +func demo1016(a point1016) point1016 { + return a +} + +func init() { + a := point1016{1, 2, 3, 4, 5} + assert("cdemo1016\000", cdemo1016(a) == a) + assert("demo1016\000", demo1016(a) == a) +} + +type point1017 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo1017 C.demo1017 +func cdemo1017(a point1017) point1017 + +func demo1017(a point1017) point1017 { + return a +} + +func init() { + a := point1017{1, 2, 3, 4, 5} + assert("cdemo1017\000", cdemo1017(a) == a) + assert("demo1017\000", demo1017(a) == a) +} + +type point1018 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo1018 C.demo1018 +func cdemo1018(a point1018) point1018 + +func demo1018(a point1018) point1018 { + return a +} + +func init() { + a := point1018{1, 2, 3, 4, 5} + assert("cdemo1018\000", cdemo1018(a) == a) + assert("demo1018\000", demo1018(a) == a) +} + +type point1019 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo1019 C.demo1019 +func cdemo1019(a point1019) point1019 + +func demo1019(a point1019) point1019 { + return a +} + +func init() { + a := point1019{1, 2, 3, 4, 5} + assert("cdemo1019\000", cdemo1019(a) == a) + assert("demo1019\000", demo1019(a) == a) +} + +type point1020 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int32 +} + +//go:linkname cdemo1020 C.demo1020 +func cdemo1020(a point1020) point1020 + +func demo1020(a point1020) point1020 { + return a +} + +func init() { + a := point1020{1, 2, 3, 4} + assert("cdemo1020\000", cdemo1020(a) == a) + assert("demo1020\000", demo1020(a) == a) +} + +type point1021 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo1021 C.demo1021 +func cdemo1021(a point1021) point1021 + +func demo1021(a point1021) point1021 { + return a +} + +func init() { + a := point1021{1, 2, 3, 4, 5} + assert("cdemo1021\000", cdemo1021(a) == a) + assert("demo1021\000", demo1021(a) == a) +} + +type point1022 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo1022 C.demo1022 +func cdemo1022(a point1022) point1022 + +func demo1022(a point1022) point1022 { + return a +} + +func init() { + a := point1022{1, 2, 3, 4, 5} + assert("cdemo1022\000", cdemo1022(a) == a) + assert("demo1022\000", demo1022(a) == a) +} + +type point1023 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo1023 C.demo1023 +func cdemo1023(a point1023) point1023 + +func demo1023(a point1023) point1023 { + return a +} + +func init() { + a := point1023{1, 2, 3, 4, 5} + assert("cdemo1023\000", cdemo1023(a) == a) + assert("demo1023\000", demo1023(a) == a) +} + +type point1024 struct { + x0 float32 + x1 int32 + x2 int32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo1024 C.demo1024 +func cdemo1024(a point1024) point1024 + +func demo1024(a point1024) point1024 { + return a +} + +func init() { + a := point1024{1, 2, 3, 4, 5} + assert("cdemo1024\000", cdemo1024(a) == a) + assert("demo1024\000", demo1024(a) == a) +} + +type point1025 struct { + x0 float32 + x1 int32 + x2 int32 + x3 float32 +} + +//go:linkname cdemo1025 C.demo1025 +func cdemo1025(a point1025) point1025 + +func demo1025(a point1025) point1025 { + return a +} + +func init() { + a := point1025{1, 2, 3, 4} + assert("cdemo1025\000", cdemo1025(a) == a) + assert("demo1025\000", demo1025(a) == a) +} + +type point1026 struct { + x0 float32 + x1 int32 + x2 int32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo1026 C.demo1026 +func cdemo1026(a point1026) point1026 + +func demo1026(a point1026) point1026 { + return a +} + +func init() { + a := point1026{1, 2, 3, 4, 5} + assert("cdemo1026\000", cdemo1026(a) == a) + assert("demo1026\000", demo1026(a) == a) +} + +type point1027 struct { + x0 float32 + x1 int32 + x2 int32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo1027 C.demo1027 +func cdemo1027(a point1027) point1027 + +func demo1027(a point1027) point1027 { + return a +} + +func init() { + a := point1027{1, 2, 3, 4, 5} + assert("cdemo1027\000", cdemo1027(a) == a) + assert("demo1027\000", demo1027(a) == a) +} + +type point1028 struct { + x0 float32 + x1 int32 + x2 int32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo1028 C.demo1028 +func cdemo1028(a point1028) point1028 + +func demo1028(a point1028) point1028 { + return a +} + +func init() { + a := point1028{1, 2, 3, 4, 5} + assert("cdemo1028\000", cdemo1028(a) == a) + assert("demo1028\000", demo1028(a) == a) +} + +type point1029 struct { + x0 float32 + x1 int32 + x2 int32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo1029 C.demo1029 +func cdemo1029(a point1029) point1029 + +func demo1029(a point1029) point1029 { + return a +} + +func init() { + a := point1029{1, 2, 3, 4, 5} + assert("cdemo1029\000", cdemo1029(a) == a) + assert("demo1029\000", demo1029(a) == a) +} + +type point1030 struct { + x0 float32 + x1 int32 + x2 float32 +} + +//go:linkname cdemo1030 C.demo1030 +func cdemo1030(a point1030) point1030 + +func demo1030(a point1030) point1030 { + return a +} + +func init() { + a := point1030{1, 2, 3} + assert("cdemo1030\000", cdemo1030(a) == a) + assert("demo1030\000", demo1030(a) == a) +} + +type point1031 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int8 +} + +//go:linkname cdemo1031 C.demo1031 +func cdemo1031(a point1031) point1031 + +func demo1031(a point1031) point1031 { + return a +} + +func init() { + a := point1031{1, 2, 3, 4} + assert("cdemo1031\000", cdemo1031(a) == a) + assert("demo1031\000", demo1031(a) == a) +} + +type point1032 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int8 + x4 int8 +} + +//go:linkname cdemo1032 C.demo1032 +func cdemo1032(a point1032) point1032 + +func demo1032(a point1032) point1032 { + return a +} + +func init() { + a := point1032{1, 2, 3, 4, 5} + assert("cdemo1032\000", cdemo1032(a) == a) + assert("demo1032\000", demo1032(a) == a) +} + +type point1033 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int8 + x4 int16 +} + +//go:linkname cdemo1033 C.demo1033 +func cdemo1033(a point1033) point1033 + +func demo1033(a point1033) point1033 { + return a +} + +func init() { + a := point1033{1, 2, 3, 4, 5} + assert("cdemo1033\000", cdemo1033(a) == a) + assert("demo1033\000", demo1033(a) == a) +} + +type point1034 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int8 + x4 int32 +} + +//go:linkname cdemo1034 C.demo1034 +func cdemo1034(a point1034) point1034 + +func demo1034(a point1034) point1034 { + return a +} + +func init() { + a := point1034{1, 2, 3, 4, 5} + assert("cdemo1034\000", cdemo1034(a) == a) + assert("demo1034\000", demo1034(a) == a) +} + +type point1035 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int8 + x4 float32 +} + +//go:linkname cdemo1035 C.demo1035 +func cdemo1035(a point1035) point1035 + +func demo1035(a point1035) point1035 { + return a +} + +func init() { + a := point1035{1, 2, 3, 4, 5} + assert("cdemo1035\000", cdemo1035(a) == a) + assert("demo1035\000", demo1035(a) == a) +} + +type point1036 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int16 +} + +//go:linkname cdemo1036 C.demo1036 +func cdemo1036(a point1036) point1036 + +func demo1036(a point1036) point1036 { + return a +} + +func init() { + a := point1036{1, 2, 3, 4} + assert("cdemo1036\000", cdemo1036(a) == a) + assert("demo1036\000", demo1036(a) == a) +} + +type point1037 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int16 + x4 int8 +} + +//go:linkname cdemo1037 C.demo1037 +func cdemo1037(a point1037) point1037 + +func demo1037(a point1037) point1037 { + return a +} + +func init() { + a := point1037{1, 2, 3, 4, 5} + assert("cdemo1037\000", cdemo1037(a) == a) + assert("demo1037\000", demo1037(a) == a) +} + +type point1038 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int16 + x4 int16 +} + +//go:linkname cdemo1038 C.demo1038 +func cdemo1038(a point1038) point1038 + +func demo1038(a point1038) point1038 { + return a +} + +func init() { + a := point1038{1, 2, 3, 4, 5} + assert("cdemo1038\000", cdemo1038(a) == a) + assert("demo1038\000", demo1038(a) == a) +} + +type point1039 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int16 + x4 int32 +} + +//go:linkname cdemo1039 C.demo1039 +func cdemo1039(a point1039) point1039 + +func demo1039(a point1039) point1039 { + return a +} + +func init() { + a := point1039{1, 2, 3, 4, 5} + assert("cdemo1039\000", cdemo1039(a) == a) + assert("demo1039\000", demo1039(a) == a) +} + +type point1040 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int16 + x4 float32 +} + +//go:linkname cdemo1040 C.demo1040 +func cdemo1040(a point1040) point1040 + +func demo1040(a point1040) point1040 { + return a +} + +func init() { + a := point1040{1, 2, 3, 4, 5} + assert("cdemo1040\000", cdemo1040(a) == a) + assert("demo1040\000", demo1040(a) == a) +} + +type point1041 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int32 +} + +//go:linkname cdemo1041 C.demo1041 +func cdemo1041(a point1041) point1041 + +func demo1041(a point1041) point1041 { + return a +} + +func init() { + a := point1041{1, 2, 3, 4} + assert("cdemo1041\000", cdemo1041(a) == a) + assert("demo1041\000", demo1041(a) == a) +} + +type point1042 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int32 + x4 int8 +} + +//go:linkname cdemo1042 C.demo1042 +func cdemo1042(a point1042) point1042 + +func demo1042(a point1042) point1042 { + return a +} + +func init() { + a := point1042{1, 2, 3, 4, 5} + assert("cdemo1042\000", cdemo1042(a) == a) + assert("demo1042\000", demo1042(a) == a) +} + +type point1043 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int32 + x4 int16 +} + +//go:linkname cdemo1043 C.demo1043 +func cdemo1043(a point1043) point1043 + +func demo1043(a point1043) point1043 { + return a +} + +func init() { + a := point1043{1, 2, 3, 4, 5} + assert("cdemo1043\000", cdemo1043(a) == a) + assert("demo1043\000", demo1043(a) == a) +} + +type point1044 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int32 + x4 int32 +} + +//go:linkname cdemo1044 C.demo1044 +func cdemo1044(a point1044) point1044 + +func demo1044(a point1044) point1044 { + return a +} + +func init() { + a := point1044{1, 2, 3, 4, 5} + assert("cdemo1044\000", cdemo1044(a) == a) + assert("demo1044\000", demo1044(a) == a) +} + +type point1045 struct { + x0 float32 + x1 int32 + x2 float32 + x3 int32 + x4 float32 +} + +//go:linkname cdemo1045 C.demo1045 +func cdemo1045(a point1045) point1045 + +func demo1045(a point1045) point1045 { + return a +} + +func init() { + a := point1045{1, 2, 3, 4, 5} + assert("cdemo1045\000", cdemo1045(a) == a) + assert("demo1045\000", demo1045(a) == a) +} + +type point1046 struct { + x0 float32 + x1 int32 + x2 float32 + x3 float32 +} + +//go:linkname cdemo1046 C.demo1046 +func cdemo1046(a point1046) point1046 + +func demo1046(a point1046) point1046 { + return a +} + +func init() { + a := point1046{1, 2, 3, 4} + assert("cdemo1046\000", cdemo1046(a) == a) + assert("demo1046\000", demo1046(a) == a) +} + +type point1047 struct { + x0 float32 + x1 int32 + x2 float32 + x3 float32 + x4 int8 +} + +//go:linkname cdemo1047 C.demo1047 +func cdemo1047(a point1047) point1047 + +func demo1047(a point1047) point1047 { + return a +} + +func init() { + a := point1047{1, 2, 3, 4, 5} + assert("cdemo1047\000", cdemo1047(a) == a) + assert("demo1047\000", demo1047(a) == a) +} + +type point1048 struct { + x0 float32 + x1 int32 + x2 float32 + x3 float32 + x4 int16 +} + +//go:linkname cdemo1048 C.demo1048 +func cdemo1048(a point1048) point1048 + +func demo1048(a point1048) point1048 { + return a +} + +func init() { + a := point1048{1, 2, 3, 4, 5} + assert("cdemo1048\000", cdemo1048(a) == a) + assert("demo1048\000", demo1048(a) == a) +} + +type point1049 struct { + x0 float32 + x1 int32 + x2 float32 + x3 float32 + x4 int32 +} + +//go:linkname cdemo1049 C.demo1049 +func cdemo1049(a point1049) point1049 + +func demo1049(a point1049) point1049 { + return a +} + +func init() { + a := point1049{1, 2, 3, 4, 5} + assert("cdemo1049\000", cdemo1049(a) == a) + assert("demo1049\000", demo1049(a) == a) +} + +type point1050 struct { + x0 float32 + x1 int32 + x2 float32 + x3 float32 + x4 float32 +} + +//go:linkname cdemo1050 C.demo1050 +func cdemo1050(a point1050) point1050 + +func demo1050(a point1050) point1050 { + return a +} + +func init() { + a := point1050{1, 2, 3, 4, 5} + assert("cdemo1050\000", cdemo1050(a) == a) + assert("demo1050\000", demo1050(a) == a) +} diff --git a/internal/cabi/_testdata/demo/struct_uintptr.go b/internal/cabi/_testdata/demo/struct_uintptr.go new file mode 100644 index 00000000..9ff375fb --- /dev/null +++ b/internal/cabi/_testdata/demo/struct_uintptr.go @@ -0,0 +1,549 @@ +package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/struct_uintptr.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} + +type point1 struct { + x0 uintptr +} + +//go:linkname cdemo1 C.demo1 +func cdemo1(a point1) point1 + +func demo1(a point1) point1 { + return a +} + +func init() { + a := point1{1} + assert("cdemo1\000", cdemo1(a) == a) + assert("demo1\000", demo1(a) == a) +} + +type point2 struct { + x0 uintptr + x1 uintptr +} + +//go:linkname cdemo2 C.demo2 +func cdemo2(a point2) point2 + +func demo2(a point2) point2 { + return a +} + +func init() { + a := point2{1, 2} + assert("cdemo2\000", cdemo2(a) == a) + assert("demo2\000", demo2(a) == a) +} + +type point3 struct { + x0 uintptr + x1 uintptr + x2 uintptr +} + +//go:linkname cdemo3 C.demo3 +func cdemo3(a point3) point3 + +func demo3(a point3) point3 { + return a +} + +func init() { + a := point3{1, 2, 3} + assert("cdemo3\000", cdemo3(a) == a) + assert("demo3\000", demo3(a) == a) +} + +type point4 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr +} + +//go:linkname cdemo4 C.demo4 +func cdemo4(a point4) point4 + +func demo4(a point4) point4 { + return a +} + +func init() { + a := point4{1, 2, 3, 4} + assert("cdemo4\000", cdemo4(a) == a) + assert("demo4\000", demo4(a) == a) +} + +type point5 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr +} + +//go:linkname cdemo5 C.demo5 +func cdemo5(a point5) point5 + +func demo5(a point5) point5 { + return a +} + +func init() { + a := point5{1, 2, 3, 4, 5} + assert("cdemo5\000", cdemo5(a) == a) + assert("demo5\000", demo5(a) == a) +} + +type point6 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr +} + +//go:linkname cdemo6 C.demo6 +func cdemo6(a point6) point6 + +func demo6(a point6) point6 { + return a +} + +func init() { + a := point6{1, 2, 3, 4, 5, 6} + assert("cdemo6\000", cdemo6(a) == a) + assert("demo6\000", demo6(a) == a) +} + +type point7 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr +} + +//go:linkname cdemo7 C.demo7 +func cdemo7(a point7) point7 + +func demo7(a point7) point7 { + return a +} + +func init() { + a := point7{1, 2, 3, 4, 5, 6, 7} + assert("cdemo7\000", cdemo7(a) == a) + assert("demo7\000", demo7(a) == a) +} + +type point8 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr +} + +//go:linkname cdemo8 C.demo8 +func cdemo8(a point8) point8 + +func demo8(a point8) point8 { + return a +} + +func init() { + a := point8{1, 2, 3, 4, 5, 6, 7, 8} + assert("cdemo8\000", cdemo8(a) == a) + assert("demo8\000", demo8(a) == a) +} + +type point9 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr +} + +//go:linkname cdemo9 C.demo9 +func cdemo9(a point9) point9 + +func demo9(a point9) point9 { + return a +} + +func init() { + a := point9{1, 2, 3, 4, 5, 6, 7, 8, 9} + assert("cdemo9\000", cdemo9(a) == a) + assert("demo9\000", demo9(a) == a) +} + +type point10 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr +} + +//go:linkname cdemo10 C.demo10 +func cdemo10(a point10) point10 + +func demo10(a point10) point10 { + return a +} + +func init() { + a := point10{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + assert("cdemo10\000", cdemo10(a) == a) + assert("demo10\000", demo10(a) == a) +} + +type point11 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr +} + +//go:linkname cdemo11 C.demo11 +func cdemo11(a point11) point11 + +func demo11(a point11) point11 { + return a +} + +func init() { + a := point11{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + assert("cdemo11\000", cdemo11(a) == a) + assert("demo11\000", demo11(a) == a) +} + +type point12 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr +} + +//go:linkname cdemo12 C.demo12 +func cdemo12(a point12) point12 + +func demo12(a point12) point12 { + return a +} + +func init() { + a := point12{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + assert("cdemo12\000", cdemo12(a) == a) + assert("demo12\000", demo12(a) == a) +} + +type point13 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr +} + +//go:linkname cdemo13 C.demo13 +func cdemo13(a point13) point13 + +func demo13(a point13) point13 { + return a +} + +func init() { + a := point13{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} + assert("cdemo13\000", cdemo13(a) == a) + assert("demo13\000", demo13(a) == a) +} + +type point14 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr + x13 uintptr +} + +//go:linkname cdemo14 C.demo14 +func cdemo14(a point14) point14 + +func demo14(a point14) point14 { + return a +} + +func init() { + a := point14{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + assert("cdemo14\000", cdemo14(a) == a) + assert("demo14\000", demo14(a) == a) +} + +type point15 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr + x13 uintptr + x14 uintptr +} + +//go:linkname cdemo15 C.demo15 +func cdemo15(a point15) point15 + +func demo15(a point15) point15 { + return a +} + +func init() { + a := point15{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + assert("cdemo15\000", cdemo15(a) == a) + assert("demo15\000", demo15(a) == a) +} + +type point16 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr + x13 uintptr + x14 uintptr + x15 uintptr +} + +//go:linkname cdemo16 C.demo16 +func cdemo16(a point16) point16 + +func demo16(a point16) point16 { + return a +} + +func init() { + a := point16{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert("cdemo16\000", cdemo16(a) == a) + assert("demo16\000", demo16(a) == a) +} + +type point17 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr + x13 uintptr + x14 uintptr + x15 uintptr + x16 uintptr +} + +//go:linkname cdemo17 C.demo17 +func cdemo17(a point17) point17 + +func demo17(a point17) point17 { + return a +} + +func init() { + a := point17{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} + assert("cdemo17\000", cdemo17(a) == a) + assert("demo17\000", demo17(a) == a) +} + +type point18 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr + x13 uintptr + x14 uintptr + x15 uintptr + x16 uintptr + x17 uintptr +} + +//go:linkname cdemo18 C.demo18 +func cdemo18(a point18) point18 + +func demo18(a point18) point18 { + return a +} + +func init() { + a := point18{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} + assert("cdemo18\000", cdemo18(a) == a) + assert("demo18\000", demo18(a) == a) +} + +type point19 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr + x13 uintptr + x14 uintptr + x15 uintptr + x16 uintptr + x17 uintptr + x18 uintptr +} + +//go:linkname cdemo19 C.demo19 +func cdemo19(a point19) point19 + +func demo19(a point19) point19 { + return a +} + +func init() { + a := point19{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + assert("cdemo19\000", cdemo19(a) == a) + assert("demo19\000", demo19(a) == a) +} + +type point20 struct { + x0 uintptr + x1 uintptr + x2 uintptr + x3 uintptr + x4 uintptr + x5 uintptr + x6 uintptr + x7 uintptr + x8 uintptr + x9 uintptr + x10 uintptr + x11 uintptr + x12 uintptr + x13 uintptr + x14 uintptr + x15 uintptr + x16 uintptr + x17 uintptr + x18 uintptr + x19 uintptr +} + +//go:linkname cdemo20 C.demo20 +func cdemo20(a point20) point20 + +func demo20(a point20) point20 { + return a +} + +func init() { + a := point20{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} + assert("cdemo20\000", cdemo20(a) == a) + assert("demo20\000", demo20(a) == a) +} diff --git a/internal/cabi/_testdata/make.go b/internal/cabi/_testdata/make.go new file mode 100644 index 00000000..c45efc1d --- /dev/null +++ b/internal/cabi/_testdata/make.go @@ -0,0 +1,283 @@ +//go:build ignore +// +build ignore + +package main + +import ( + "bytes" + "os" + "path/filepath" + "strconv" + "strings" +) + +var ghead_basic = `package main + +import "unsafe" + +const ( + LLGoFiles = "../wrap/basic.c" +) + +//go:linkname printf C.printf +func printf(format *byte, __llgo_va_list ...any) int32 + +func assert(info string, b bool) { + if !b { + printf(unsafe.StringData("Assertion failed: %s\n\000"), unsafe.StringData(info)) + } +} + +func main() { +} +` + +var gbasic = ` +//go:linkname cbasic C.basic +func cbasic(a int) int + +func basic(a int) int { + return a +} + +func init() { + assert("cbasic\000", cbasic(100) == 100) + assert("basic\000", basic(100) == 100) +} +` + +var garray = ` +type array struct { + x [N]int +} + +//go:linkname cdemo C.demo +func cdemo(a array) array + +func demo(a array) array { + return a +} + +func init() { + a := array{x: [N]int{M}} + assert("cdemo\000", cdemo(a) == a) + assert("demo\000", demo(a) == a) +} +` + +var gstruct = ` +type point struct { + x int +} + +//go:linkname cdemo C.demo +func cdemo(a point) point + +func demo(a point) point { + return a +} + +func init() { + a := point{M} + assert("cdemo\000", cdemo(a) == a) + assert("demo\000", demo(a) == a) +} +` + +var cbasic = ` +int basic(int a) { + return a; +} +` + +var carray = ` +struct array { + int x[N]; +}; + +struct array demo(struct array a) { + return a; +} +` + +var cstruct = ` +struct point { + int x; +}; + +struct point demo(struct point a) { + return a; +} +` + +func main() { + // char + // short + // int + // int* + // float + // double + // 1 2 3 4 5 6 7 8 + + types := []string{"char", "short", "int", "long long", "float", "double", "void*"} + ids := []string{"int8", "int16", "int32", "int64", "float32", "float64", "uintptr"} + idTypes := make(map[string]string) + for i, id := range ids { + idTypes[id] = types[i] + } + + // write cbasic + var cbuf bytes.Buffer + for nid, id := range ids { + data := strings.NewReplacer("int", types[nid], "basic", "basic_"+id).Replace(cbasic) + cbuf.WriteString(data) + } + os.WriteFile("./wrap/basic.c", cbuf.Bytes(), 0666) + + // write go basic + var buf bytes.Buffer + buf.WriteString(ghead_basic) + for _, id := range ids { + data := strings.NewReplacer("int", id, "basic", "basic_"+id).Replace(gbasic) + buf.WriteString(data) + } + os.WriteFile("./demo/basic.go", buf.Bytes(), 0666) + + // write c array + for nid, id := range ids { + f := filepath.Join("./wrap/array_" + id + ".c") + var buf bytes.Buffer + for i := 0; i < 20; i++ { + N := strconv.Itoa(i + 1) + data := strings.NewReplacer("int", types[nid], "N", N, + "array", "array"+N, "demo", "demo"+N).Replace(carray) + buf.WriteString(data) + } + os.WriteFile(f, buf.Bytes(), 0666) + } + + // write c struct + for nid, id := range ids { + f := filepath.Join("./wrap/struct_" + id + ".c") + var buf bytes.Buffer + for i := 0; i < 20; i++ { + N := strconv.Itoa(i + 1) + ar := make([]string, i+1) + for j := 0; j < i+1; j++ { + ar[j] = types[nid] + " x" + strconv.Itoa(j) + ";" + } + data := strings.NewReplacer("int x;", strings.Join(ar, "\n\t"), "N", N, + "point", "point"+N, "demo", "demo"+N).Replace(cstruct) + buf.WriteString(data) + } + os.WriteFile(f, buf.Bytes(), 0666) + } + + // write go array + for _, id := range ids { + f := filepath.Join("./demo/array_" + id + ".go") + var buf bytes.Buffer + buf.WriteString(strings.Replace(ghead_basic, "basic", "array_"+id, -1)) + for i := 0; i < 20; i++ { + N := strconv.Itoa(i + 1) + M := make([]string, i+1) + for j := 0; j < i+1; j++ { + M[j] = strconv.Itoa(j + 1) + } + data := strings.NewReplacer("int", id, "N", N, "M", strings.Join(M, ", "), + "array", "array"+N, "demo", "demo"+N).Replace(garray) + buf.WriteString(data) + } + os.WriteFile(f, buf.Bytes(), 0666) + } + + // write go struct + for _, id := range ids { + f := filepath.Join("./demo/struct_" + id + ".go") + var buf bytes.Buffer + buf.WriteString(strings.Replace(ghead_basic, "basic", "struct_"+id, -1)) + for i := 0; i < 20; i++ { + N := strconv.Itoa(i + 1) + M := make([]string, i+1) + for j := 0; j < i+1; j++ { + M[j] = strconv.Itoa(j + 1) + } + ar := make([]string, i+1) + for j := 0; j < i+1; j++ { + ar[j] = "x" + strconv.Itoa(j) + " " + id + } + data := strings.NewReplacer("x int", strings.Join(ar, "\n\t"), "N", N, "M", strings.Join(M, ", "), + "point", "point"+N, "demo", "demo"+N).Replace(gstruct) + buf.WriteString(data) + } + os.WriteFile(f, buf.Bytes(), 0666) + } + var mixeds []string + for _, id1 := range ids { + for _, id2 := range ids { + if id1 == id2 { + continue + } + mixeds = append(mixeds, id1+","+id2) + } + } + ids2 := []string{"int8", "int16", "int32", "float32"} + for _, id1 := range ids2 { + for _, id2 := range ids2 { + if id1 == id2 { + continue + } + for _, id3 := range ids2 { + if id1 == id2 && id2 == id3 { + continue + } + mixeds = append(mixeds, id1+","+id2+","+id3) + for _, id4 := range ids2 { + if id1 == id2 && id2 == id3 && id3 == id4 { + continue + } + mixeds = append(mixeds, id1+","+id2+","+id3+","+id4) + for _, id5 := range ids2 { + if id1 == id2 && id2 == id3 && id3 == id4 && id4 == id5 { + continue + } + mixeds = append(mixeds, id1+","+id2+","+id3+","+id4+","+id5) + } + } + } + } + } + // write c mixed + cbuf.Reset() + for i, mixed := range mixeds { + N := strconv.Itoa(i + 1) + ids := strings.Split(mixed, ",") + ar := make([]string, len(ids)) + for j, id := range ids { + ar[j] = idTypes[id] + " x" + strconv.Itoa(j) + ";" + } + data := strings.NewReplacer("int x;", strings.Join(ar, "\n\t"), "N", N, + "point", "point"+N, "demo", "demo"+N).Replace(cstruct) + cbuf.WriteString(data) + } + os.WriteFile("./wrap/struct_mixed.c", cbuf.Bytes(), 0666) + // write go mixed + buf.Reset() + buf.WriteString(strings.Replace(ghead_basic, "basic", "struct_mixed", -1)) + for i, mixed := range mixeds { + N := strconv.Itoa(i + 1) + ids := strings.Split(mixed, ",") + ar := make([]string, len(ids)) + for j, id := range ids { + ar[j] = "x" + strconv.Itoa(j) + " " + id + } + M := make([]string, len(ids)) + for j := 0; j < len(ids); j++ { + M[j] = strconv.Itoa(j + 1) + } + data := strings.NewReplacer("x int", strings.Join(ar, "\n\t"), "N", N, "M", strings.Join(M, ", "), + "point", "point"+N, "demo", "demo"+N).Replace(gstruct) + buf.WriteString(data) + } + os.WriteFile("./demo/struct_mixed.go", buf.Bytes(), 0666) +} diff --git a/internal/cabi/_testdata/wrap/array_float32.c b/internal/cabi/_testdata/wrap/array_float32.c new file mode 100644 index 00000000..8a656a90 --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_float32.c @@ -0,0 +1,160 @@ + +struct array1 { + float x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + float x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + float x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + float x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + float x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + float x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + float x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + float x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + float x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + float x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + float x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + float x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + float x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + float x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + float x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + float x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + float x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + float x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + float x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + float x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/array_float64.c b/internal/cabi/_testdata/wrap/array_float64.c new file mode 100644 index 00000000..76d99d2f --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_float64.c @@ -0,0 +1,160 @@ + +struct array1 { + double x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + double x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + double x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + double x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + double x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + double x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + double x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + double x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + double x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + double x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + double x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + double x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + double x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + double x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + double x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + double x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + double x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + double x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + double x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + double x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/array_int16.c b/internal/cabi/_testdata/wrap/array_int16.c new file mode 100644 index 00000000..e2de634d --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_int16.c @@ -0,0 +1,160 @@ + +struct array1 { + short x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + short x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + short x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + short x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + short x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + short x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + short x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + short x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + short x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + short x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + short x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + short x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + short x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + short x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + short x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + short x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + short x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + short x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + short x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + short x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/array_int32.c b/internal/cabi/_testdata/wrap/array_int32.c new file mode 100644 index 00000000..fb95725b --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_int32.c @@ -0,0 +1,160 @@ + +struct array1 { + int x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + int x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + int x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + int x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + int x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + int x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + int x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + int x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + int x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + int x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + int x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + int x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + int x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + int x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + int x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + int x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + int x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + int x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + int x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + int x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/array_int64.c b/internal/cabi/_testdata/wrap/array_int64.c new file mode 100644 index 00000000..b3d19305 --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_int64.c @@ -0,0 +1,160 @@ + +struct array1 { + long long x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + long long x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + long long x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + long long x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + long long x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + long long x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + long long x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + long long x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + long long x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + long long x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + long long x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + long long x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + long long x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + long long x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + long long x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + long long x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + long long x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + long long x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + long long x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + long long x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/array_int8.c b/internal/cabi/_testdata/wrap/array_int8.c new file mode 100644 index 00000000..317703dc --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_int8.c @@ -0,0 +1,160 @@ + +struct array1 { + char x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + char x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + char x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + char x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + char x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + char x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + char x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + char x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + char x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + char x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + char x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + char x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + char x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + char x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + char x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + char x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + char x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + char x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + char x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + char x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/array_pointer.c b/internal/cabi/_testdata/wrap/array_pointer.c new file mode 100644 index 00000000..5e915f62 --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_pointer.c @@ -0,0 +1,160 @@ + +struct array1 { + void* x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + void* x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + void* x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + void* x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + void* x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + void* x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + void* x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + void* x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + void* x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + void* x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + void* x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + void* x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + void* x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + void* x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + void* x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + void* x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + void* x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + void* x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + void* x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + void* x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/array_uintptr.c b/internal/cabi/_testdata/wrap/array_uintptr.c new file mode 100644 index 00000000..5e915f62 --- /dev/null +++ b/internal/cabi/_testdata/wrap/array_uintptr.c @@ -0,0 +1,160 @@ + +struct array1 { + void* x[1]; +}; + +struct array1 demo1(struct array1 a) { + return a; +} + +struct array2 { + void* x[2]; +}; + +struct array2 demo2(struct array2 a) { + return a; +} + +struct array3 { + void* x[3]; +}; + +struct array3 demo3(struct array3 a) { + return a; +} + +struct array4 { + void* x[4]; +}; + +struct array4 demo4(struct array4 a) { + return a; +} + +struct array5 { + void* x[5]; +}; + +struct array5 demo5(struct array5 a) { + return a; +} + +struct array6 { + void* x[6]; +}; + +struct array6 demo6(struct array6 a) { + return a; +} + +struct array7 { + void* x[7]; +}; + +struct array7 demo7(struct array7 a) { + return a; +} + +struct array8 { + void* x[8]; +}; + +struct array8 demo8(struct array8 a) { + return a; +} + +struct array9 { + void* x[9]; +}; + +struct array9 demo9(struct array9 a) { + return a; +} + +struct array10 { + void* x[10]; +}; + +struct array10 demo10(struct array10 a) { + return a; +} + +struct array11 { + void* x[11]; +}; + +struct array11 demo11(struct array11 a) { + return a; +} + +struct array12 { + void* x[12]; +}; + +struct array12 demo12(struct array12 a) { + return a; +} + +struct array13 { + void* x[13]; +}; + +struct array13 demo13(struct array13 a) { + return a; +} + +struct array14 { + void* x[14]; +}; + +struct array14 demo14(struct array14 a) { + return a; +} + +struct array15 { + void* x[15]; +}; + +struct array15 demo15(struct array15 a) { + return a; +} + +struct array16 { + void* x[16]; +}; + +struct array16 demo16(struct array16 a) { + return a; +} + +struct array17 { + void* x[17]; +}; + +struct array17 demo17(struct array17 a) { + return a; +} + +struct array18 { + void* x[18]; +}; + +struct array18 demo18(struct array18 a) { + return a; +} + +struct array19 { + void* x[19]; +}; + +struct array19 demo19(struct array19 a) { + return a; +} + +struct array20 { + void* x[20]; +}; + +struct array20 demo20(struct array20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/basic.c b/internal/cabi/_testdata/wrap/basic.c new file mode 100644 index 00000000..56781acd --- /dev/null +++ b/internal/cabi/_testdata/wrap/basic.c @@ -0,0 +1,28 @@ + +char basic_int8(char a) { + return a; +} + +short basic_int16(short a) { + return a; +} + +int basic_int32(int a) { + return a; +} + +long long basic_int64(long long a) { + return a; +} + +float basic_float32(float a) { + return a; +} + +double basic_float64(double a) { + return a; +} + +void* basic_uintptr(void* a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/composite.c b/internal/cabi/_testdata/wrap/composite.c new file mode 100644 index 00000000..0de8d6bc --- /dev/null +++ b/internal/cabi/_testdata/wrap/composite.c @@ -0,0 +1,84 @@ +struct basearray1 { + int x[1]; +}; + +struct array10 { + struct basearray1 base; +}; + +struct array10 demo_array10(struct array10 a) { + return a; +} + +struct array11 { + struct basearray1 base; + int z; +}; + +struct array11 demo_array11(struct array11 a) { + return a; +} + +struct basepoint1 { + int x; +}; + +struct point10 { + struct basepoint1 base; +}; + +struct point10 demo_point10(struct point10 a) { + return a; +} + +struct point11 { + struct basepoint1 base; + int z; +}; + +struct point11 demo_point11(struct point11 a) { + return a; +} + +struct basearray2 { + int x[2]; +}; + +struct array20 { + struct basearray2 base; +}; + +struct array20 demo_array20(struct array20 a) { + return a; +} + +struct array21 { + struct basearray2 base; + int z; +}; + +struct array21 demo_array21(struct array21 a) { + return a; +} + +struct basepoint2 { + int x; + int y; +}; + +struct point20 { + struct basepoint2 base; +}; + +struct point20 demo_point20(struct point20 a) { + return a; +} + +struct point21 { + struct basepoint2 base; + int z; +}; + +struct point21 demo_point21(struct point21 a) { + return a; +} \ No newline at end of file diff --git a/internal/cabi/_testdata/wrap/demo.c b/internal/cabi/_testdata/wrap/demo.c new file mode 100644 index 00000000..e5519118 --- /dev/null +++ b/internal/cabi/_testdata/wrap/demo.c @@ -0,0 +1,325 @@ +extern int printf(const char *format, ...); + +int demo32(int v) { + return v+100; +} + +long long demo64(long long v) { + return v+100; +} + +struct struct32 { + int v; +}; + +struct point64 { + long long x; + long long y; +}; + +struct point64 pt64(struct point64 pt) { + printf("point64: %lld %lld\n",pt.x,pt.y); + return pt; +} + +struct struct32 demo32s(struct struct32 v) { + printf("struct32: %d\n",v.v); + struct struct32 v2 = {v.v+100}; + return v2; +} + +struct point { + int x; + int y; +}; + +struct point pt(struct point pt) { + printf("point: %d %d\n",pt.x,pt.y); + return pt; +} + +struct point1 { + int x; + int y; + int z; +}; + +struct point1 pt1(struct point1 pt) { + printf("point1: %d %d %d\n",pt.x,pt.y,pt.z); + return pt; +} + +struct point2 { + char x; + int y; + int z; +}; + +struct point2 pt2(struct point2 pt) { + printf("point2: %d %d %d\n",pt.x,pt.y,pt.z); + return pt; +} + +struct point3 { + char x; + char y; + char z; +}; + +struct point3 pt3(struct point3 pt) { + printf("point3: %d %d %d\n",pt.x,pt.y,pt.z); + return pt; +} + +struct point4 { + char x; + char y; + char z; + int m; +}; + +struct point4 pt4(struct point4 pt) { + printf("point4: %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m); + return pt; +} + +struct point5 { + char x; + char y; + char z; + char m; + char n; +}; + +struct point5 pt5(struct point5 pt) { + printf("point5: %d %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m,pt.n); + return pt; +} + +struct point6 { + char x; + char y; + char z; + char m; + char n; + int k; +}; + +struct point6 pt6(struct point6 pt) { + printf("point6: %d %d %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m,pt.n,pt.k); + return pt; +} + +struct point7 { + char x; + char y; + char z; + char m; + char n; + int k; + char o; +}; + +struct point7 pt7(struct point7 pt) { + printf("point7: %d %d %d %d %d %d %d\n",pt.x,pt.y,pt.z,pt.m,pt.n,pt.k,pt.o); + return pt; +} + +struct data1 { + char x; + long long y; +}; + +struct data1 fn1(struct data1 pt) { + printf("data1: %d %lld\n",pt.x,pt.y); + return pt; +} + +struct data2 { + int x; + long long y; +}; + +struct data2 fn2(struct data2 pt) { + printf("data2: %d %lld\n",pt.x,pt.y); + return pt; +} + +struct data3 { + long long x; + char y; +}; + +struct data3 fn3(struct data3 pt) { + printf("data3: %lld %d\n",pt.x,pt.y); + return pt; +} + +struct fdata1 { + float x; +}; + +struct fdata1 ff1(struct fdata1 pt) { + printf("ff1: %f\n",pt.x); + return pt; +} + +struct ddata1 { + double x; +}; + +struct ddata1 dd1(struct ddata1 pt) { + printf("dd1: %f\n",pt.x); + return pt; +} + +struct ddata2 { + double x; + double y; +}; + +struct ddata2 dd2(struct ddata2 pt) { + printf("dd2: %f %f\n",pt.x,pt.y); + return pt; +} + +struct ddata3 { + double x; + double y; + double z; +}; + +struct ddata3 dd3(struct ddata3 pt) { + printf("dd3: %f %f %f\n",pt.x,pt.y,pt.z); + return pt; +} + +struct fdata2i { + float x; + int y; +}; + +struct fdata2i ff2i(struct fdata2i pt) { + printf("ff2i: %f %d\n",pt.x,pt.y); + return pt; +} + +struct fdata2 { + float x; + float y; +}; + +struct fdata2 ff2(struct fdata2 pt) { + printf("ff2: %f %f\n",pt.x,pt.y); + return pt; +} + +struct fdata3 { + float x; + float y; + float z; +}; + +struct fdata3 ff3(struct fdata3 pt) { + printf("ff3: %f %f %f\n",pt.x,pt.y,pt.z); + return pt; +} + +struct fdata4 { + float x; + float y; + float z; + float m; +}; + +struct fdata4 ff4(struct fdata4 pt) { + printf("ff4: %f %f %f %f\n",pt.x,pt.y,pt.z,pt.m); + return pt; +} + +struct fdata5 { + float x; + float y; + float z; + float m; + float n; +}; + +struct fdata5 ff5(struct fdata5 pt) { + printf("ff5: %f %f %f %f %f\n",pt.x,pt.y,pt.z,pt.m,pt.n); + return pt; +} + +struct fdata2id { + char x; + char y; + double z; +}; + +struct fdata2id ff2id(struct fdata2id pt) { + printf("ff6: %d %d %f\n",pt.x,pt.y,pt.z); + return pt; +} + +struct fdata7if { + char x[7]; + float z; +}; + +struct fdata7if ff7if(struct fdata7if pt) { + printf("ff7if: %d %d %f\n",pt.x[0],pt.x[1],pt.z); + return pt; +} + +struct fdata4if { + float x; + char y; + float z; + float m; +}; + +struct fdata4if ff4if(struct fdata4if pt) { + printf("ff4if: %f %d %f %f\n",pt.x,pt.y,pt.z,pt.m); + return pt; +} + +struct array { + int x[8]; +}; + +struct array demo(struct array a) { + printf("demo: %d %d %d\n",a.x[0],a.x[1],a.x[2]); + return a; +} + +struct array demo2(int a1){ + struct array x; + for (int i = 0; i < 8; i++) { + x.x[i] = i+a1; + } + return x; +} + +void callback(struct array (*fn)(struct array ar, struct point pt, struct point1 pt1), struct array ar) { + demo(ar); + struct point pt = {1,2}; + struct point1 pt1 = {1,2,3}; + struct array ret = fn(ar,pt,pt1); + demo(ret); +} + +void callback1(struct point (*fn)(struct array ar, struct point pt, struct point1 pt1), struct array ar) { + printf("callback1 array: %d %d %d\n",ar.x[0],ar.x[1],ar.x[7]); + struct point pt = {1,2}; + struct point1 pt1 = {1,2,3}; + struct point ret = fn(ar,pt,pt1); + printf("callback1 ret: %d,%d\n",ret.x,ret.y); +} + +struct point mycallback(struct array ar, struct point pt, struct point1 pt1) { + printf("mycallback array: %d %d %d\n",ar.x[0],ar.x[1],ar.x[7]); + printf("mycallback pt: %d %d\n",pt.x,pt.y); + printf("mycallback pt1: %d %d %d\n",pt1.x,pt1.y,pt1.z); + struct point ret = {pt.x+pt1.x, pt.y+pt1.y}; + return ret; +} diff --git a/internal/cabi/_testdata/wrap/empty.c b/internal/cabi/_testdata/wrap/empty.c new file mode 100644 index 00000000..d2915996 --- /dev/null +++ b/internal/cabi/_testdata/wrap/empty.c @@ -0,0 +1,18 @@ +struct empty { +}; + +struct empty demo0(struct empty a) { + return a; +} + +struct empty demo1(struct empty a, int v) { + return a; +} + +int demo2(int v, struct empty a) { + return v; +} + +int demo3(int v, struct empty a, int v2) { + return v + v2; +} \ No newline at end of file diff --git a/internal/cabi/_testdata/wrap/struct_float32.c b/internal/cabi/_testdata/wrap/struct_float32.c new file mode 100644 index 00000000..af1427d9 --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_float32.c @@ -0,0 +1,350 @@ + +struct point1 { + float x0; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + float x0; + float x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + float x0; + float x1; + float x2; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + float x0; + float x1; + float x2; + float x3; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + float x0; + float x1; + float x2; + float x3; + float x4; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; + float x13; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; + float x13; + float x14; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; + float x13; + float x14; + float x15; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; + float x13; + float x14; + float x15; + float x16; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; + float x13; + float x14; + float x15; + float x16; + float x17; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; + float x13; + float x14; + float x15; + float x16; + float x17; + float x18; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + float x0; + float x1; + float x2; + float x3; + float x4; + float x5; + float x6; + float x7; + float x8; + float x9; + float x10; + float x11; + float x12; + float x13; + float x14; + float x15; + float x16; + float x17; + float x18; + float x19; +}; + +struct point20 demo20(struct point20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/struct_float64.c b/internal/cabi/_testdata/wrap/struct_float64.c new file mode 100644 index 00000000..bf5c9ae7 --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_float64.c @@ -0,0 +1,350 @@ + +struct point1 { + double x0; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + double x0; + double x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + double x0; + double x1; + double x2; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + double x0; + double x1; + double x2; + double x3; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + double x0; + double x1; + double x2; + double x3; + double x4; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; + double x13; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; + double x13; + double x14; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; + double x13; + double x14; + double x15; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; + double x13; + double x14; + double x15; + double x16; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; + double x13; + double x14; + double x15; + double x16; + double x17; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; + double x13; + double x14; + double x15; + double x16; + double x17; + double x18; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + double x0; + double x1; + double x2; + double x3; + double x4; + double x5; + double x6; + double x7; + double x8; + double x9; + double x10; + double x11; + double x12; + double x13; + double x14; + double x15; + double x16; + double x17; + double x18; + double x19; +}; + +struct point20 demo20(struct point20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/struct_int16.c b/internal/cabi/_testdata/wrap/struct_int16.c new file mode 100644 index 00000000..3238405b --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_int16.c @@ -0,0 +1,350 @@ + +struct point1 { + short x0; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + short x0; + short x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + short x0; + short x1; + short x2; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + short x0; + short x1; + short x2; + short x3; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + short x0; + short x1; + short x2; + short x3; + short x4; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; + short x13; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; + short x13; + short x14; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; + short x13; + short x14; + short x15; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; + short x13; + short x14; + short x15; + short x16; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; + short x13; + short x14; + short x15; + short x16; + short x17; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; + short x13; + short x14; + short x15; + short x16; + short x17; + short x18; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + short x0; + short x1; + short x2; + short x3; + short x4; + short x5; + short x6; + short x7; + short x8; + short x9; + short x10; + short x11; + short x12; + short x13; + short x14; + short x15; + short x16; + short x17; + short x18; + short x19; +}; + +struct point20 demo20(struct point20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/struct_int32.c b/internal/cabi/_testdata/wrap/struct_int32.c new file mode 100644 index 00000000..1c7c24b7 --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_int32.c @@ -0,0 +1,350 @@ + +struct point1 { + int x0; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + int x0; + int x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + int x0; + int x1; + int x2; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + int x0; + int x1; + int x2; + int x3; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + int x0; + int x1; + int x2; + int x3; + int x4; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; + int x13; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; + int x13; + int x14; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; + int x13; + int x14; + int x15; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; + int x13; + int x14; + int x15; + int x16; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; + int x13; + int x14; + int x15; + int x16; + int x17; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; + int x13; + int x14; + int x15; + int x16; + int x17; + int x18; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + int x0; + int x1; + int x2; + int x3; + int x4; + int x5; + int x6; + int x7; + int x8; + int x9; + int x10; + int x11; + int x12; + int x13; + int x14; + int x15; + int x16; + int x17; + int x18; + int x19; +}; + +struct point20 demo20(struct point20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/struct_int64.c b/internal/cabi/_testdata/wrap/struct_int64.c new file mode 100644 index 00000000..1b2afc09 --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_int64.c @@ -0,0 +1,350 @@ + +struct point1 { + long long x0; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + long long x0; + long long x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + long long x0; + long long x1; + long long x2; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + long long x0; + long long x1; + long long x2; + long long x3; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; + long long x13; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; + long long x13; + long long x14; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; + long long x13; + long long x14; + long long x15; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; + long long x13; + long long x14; + long long x15; + long long x16; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; + long long x13; + long long x14; + long long x15; + long long x16; + long long x17; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; + long long x13; + long long x14; + long long x15; + long long x16; + long long x17; + long long x18; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + long long x0; + long long x1; + long long x2; + long long x3; + long long x4; + long long x5; + long long x6; + long long x7; + long long x8; + long long x9; + long long x10; + long long x11; + long long x12; + long long x13; + long long x14; + long long x15; + long long x16; + long long x17; + long long x18; + long long x19; +}; + +struct point20 demo20(struct point20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/struct_int8.c b/internal/cabi/_testdata/wrap/struct_int8.c new file mode 100644 index 00000000..51712131 --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_int8.c @@ -0,0 +1,350 @@ + +struct point1 { + char x0; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + char x0; + char x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + char x0; + char x1; + char x2; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + char x0; + char x1; + char x2; + char x3; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + char x0; + char x1; + char x2; + char x3; + char x4; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; + char x13; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; + char x13; + char x14; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; + char x13; + char x14; + char x15; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; + char x13; + char x14; + char x15; + char x16; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; + char x13; + char x14; + char x15; + char x16; + char x17; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; + char x13; + char x14; + char x15; + char x16; + char x17; + char x18; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + char x0; + char x1; + char x2; + char x3; + char x4; + char x5; + char x6; + char x7; + char x8; + char x9; + char x10; + char x11; + char x12; + char x13; + char x14; + char x15; + char x16; + char x17; + char x18; + char x19; +}; + +struct point20 demo20(struct point20 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/struct_mixed.c b/internal/cabi/_testdata/wrap/struct_mixed.c new file mode 100644 index 00000000..b40f8ad3 --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_mixed.c @@ -0,0 +1,12186 @@ + +struct point1 { + char x0; + short x1; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + char x0; + int x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + char x0; + long long x1; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + char x0; + float x1; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + char x0; + double x1; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + char x0; + void* x1; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + short x0; + char x1; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + short x0; + int x1; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + short x0; + long long x1; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + short x0; + float x1; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + short x0; + double x1; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + short x0; + void* x1; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + int x0; + char x1; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + int x0; + short x1; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + int x0; + long long x1; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + int x0; + float x1; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + int x0; + double x1; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + int x0; + void* x1; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + long long x0; + char x1; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + long long x0; + short x1; +}; + +struct point20 demo20(struct point20 a) { + return a; +} + +struct point21 { + long long x0; + int x1; +}; + +struct point21 demo21(struct point21 a) { + return a; +} + +struct point22 { + long long x0; + float x1; +}; + +struct point22 demo22(struct point22 a) { + return a; +} + +struct point23 { + long long x0; + double x1; +}; + +struct point23 demo23(struct point23 a) { + return a; +} + +struct point24 { + long long x0; + void* x1; +}; + +struct point24 demo24(struct point24 a) { + return a; +} + +struct point25 { + float x0; + char x1; +}; + +struct point25 demo25(struct point25 a) { + return a; +} + +struct point26 { + float x0; + short x1; +}; + +struct point26 demo26(struct point26 a) { + return a; +} + +struct point27 { + float x0; + int x1; +}; + +struct point27 demo27(struct point27 a) { + return a; +} + +struct point28 { + float x0; + long long x1; +}; + +struct point28 demo28(struct point28 a) { + return a; +} + +struct point29 { + float x0; + double x1; +}; + +struct point29 demo29(struct point29 a) { + return a; +} + +struct point30 { + float x0; + void* x1; +}; + +struct point30 demo30(struct point30 a) { + return a; +} + +struct point31 { + double x0; + char x1; +}; + +struct point31 demo31(struct point31 a) { + return a; +} + +struct point32 { + double x0; + short x1; +}; + +struct point32 demo32(struct point32 a) { + return a; +} + +struct point33 { + double x0; + int x1; +}; + +struct point33 demo33(struct point33 a) { + return a; +} + +struct point34 { + double x0; + long long x1; +}; + +struct point34 demo34(struct point34 a) { + return a; +} + +struct point35 { + double x0; + float x1; +}; + +struct point35 demo35(struct point35 a) { + return a; +} + +struct point36 { + double x0; + void* x1; +}; + +struct point36 demo36(struct point36 a) { + return a; +} + +struct point37 { + void* x0; + char x1; +}; + +struct point37 demo37(struct point37 a) { + return a; +} + +struct point38 { + void* x0; + short x1; +}; + +struct point38 demo38(struct point38 a) { + return a; +} + +struct point39 { + void* x0; + int x1; +}; + +struct point39 demo39(struct point39 a) { + return a; +} + +struct point40 { + void* x0; + long long x1; +}; + +struct point40 demo40(struct point40 a) { + return a; +} + +struct point41 { + void* x0; + float x1; +}; + +struct point41 demo41(struct point41 a) { + return a; +} + +struct point42 { + void* x0; + double x1; +}; + +struct point42 demo42(struct point42 a) { + return a; +} + +struct point43 { + char x0; + short x1; + char x2; +}; + +struct point43 demo43(struct point43 a) { + return a; +} + +struct point44 { + char x0; + short x1; + char x2; + char x3; +}; + +struct point44 demo44(struct point44 a) { + return a; +} + +struct point45 { + char x0; + short x1; + char x2; + char x3; + char x4; +}; + +struct point45 demo45(struct point45 a) { + return a; +} + +struct point46 { + char x0; + short x1; + char x2; + char x3; + short x4; +}; + +struct point46 demo46(struct point46 a) { + return a; +} + +struct point47 { + char x0; + short x1; + char x2; + char x3; + int x4; +}; + +struct point47 demo47(struct point47 a) { + return a; +} + +struct point48 { + char x0; + short x1; + char x2; + char x3; + float x4; +}; + +struct point48 demo48(struct point48 a) { + return a; +} + +struct point49 { + char x0; + short x1; + char x2; + short x3; +}; + +struct point49 demo49(struct point49 a) { + return a; +} + +struct point50 { + char x0; + short x1; + char x2; + short x3; + char x4; +}; + +struct point50 demo50(struct point50 a) { + return a; +} + +struct point51 { + char x0; + short x1; + char x2; + short x3; + short x4; +}; + +struct point51 demo51(struct point51 a) { + return a; +} + +struct point52 { + char x0; + short x1; + char x2; + short x3; + int x4; +}; + +struct point52 demo52(struct point52 a) { + return a; +} + +struct point53 { + char x0; + short x1; + char x2; + short x3; + float x4; +}; + +struct point53 demo53(struct point53 a) { + return a; +} + +struct point54 { + char x0; + short x1; + char x2; + int x3; +}; + +struct point54 demo54(struct point54 a) { + return a; +} + +struct point55 { + char x0; + short x1; + char x2; + int x3; + char x4; +}; + +struct point55 demo55(struct point55 a) { + return a; +} + +struct point56 { + char x0; + short x1; + char x2; + int x3; + short x4; +}; + +struct point56 demo56(struct point56 a) { + return a; +} + +struct point57 { + char x0; + short x1; + char x2; + int x3; + int x4; +}; + +struct point57 demo57(struct point57 a) { + return a; +} + +struct point58 { + char x0; + short x1; + char x2; + int x3; + float x4; +}; + +struct point58 demo58(struct point58 a) { + return a; +} + +struct point59 { + char x0; + short x1; + char x2; + float x3; +}; + +struct point59 demo59(struct point59 a) { + return a; +} + +struct point60 { + char x0; + short x1; + char x2; + float x3; + char x4; +}; + +struct point60 demo60(struct point60 a) { + return a; +} + +struct point61 { + char x0; + short x1; + char x2; + float x3; + short x4; +}; + +struct point61 demo61(struct point61 a) { + return a; +} + +struct point62 { + char x0; + short x1; + char x2; + float x3; + int x4; +}; + +struct point62 demo62(struct point62 a) { + return a; +} + +struct point63 { + char x0; + short x1; + char x2; + float x3; + float x4; +}; + +struct point63 demo63(struct point63 a) { + return a; +} + +struct point64 { + char x0; + short x1; + short x2; +}; + +struct point64 demo64(struct point64 a) { + return a; +} + +struct point65 { + char x0; + short x1; + short x2; + char x3; +}; + +struct point65 demo65(struct point65 a) { + return a; +} + +struct point66 { + char x0; + short x1; + short x2; + char x3; + char x4; +}; + +struct point66 demo66(struct point66 a) { + return a; +} + +struct point67 { + char x0; + short x1; + short x2; + char x3; + short x4; +}; + +struct point67 demo67(struct point67 a) { + return a; +} + +struct point68 { + char x0; + short x1; + short x2; + char x3; + int x4; +}; + +struct point68 demo68(struct point68 a) { + return a; +} + +struct point69 { + char x0; + short x1; + short x2; + char x3; + float x4; +}; + +struct point69 demo69(struct point69 a) { + return a; +} + +struct point70 { + char x0; + short x1; + short x2; + short x3; +}; + +struct point70 demo70(struct point70 a) { + return a; +} + +struct point71 { + char x0; + short x1; + short x2; + short x3; + char x4; +}; + +struct point71 demo71(struct point71 a) { + return a; +} + +struct point72 { + char x0; + short x1; + short x2; + short x3; + short x4; +}; + +struct point72 demo72(struct point72 a) { + return a; +} + +struct point73 { + char x0; + short x1; + short x2; + short x3; + int x4; +}; + +struct point73 demo73(struct point73 a) { + return a; +} + +struct point74 { + char x0; + short x1; + short x2; + short x3; + float x4; +}; + +struct point74 demo74(struct point74 a) { + return a; +} + +struct point75 { + char x0; + short x1; + short x2; + int x3; +}; + +struct point75 demo75(struct point75 a) { + return a; +} + +struct point76 { + char x0; + short x1; + short x2; + int x3; + char x4; +}; + +struct point76 demo76(struct point76 a) { + return a; +} + +struct point77 { + char x0; + short x1; + short x2; + int x3; + short x4; +}; + +struct point77 demo77(struct point77 a) { + return a; +} + +struct point78 { + char x0; + short x1; + short x2; + int x3; + int x4; +}; + +struct point78 demo78(struct point78 a) { + return a; +} + +struct point79 { + char x0; + short x1; + short x2; + int x3; + float x4; +}; + +struct point79 demo79(struct point79 a) { + return a; +} + +struct point80 { + char x0; + short x1; + short x2; + float x3; +}; + +struct point80 demo80(struct point80 a) { + return a; +} + +struct point81 { + char x0; + short x1; + short x2; + float x3; + char x4; +}; + +struct point81 demo81(struct point81 a) { + return a; +} + +struct point82 { + char x0; + short x1; + short x2; + float x3; + short x4; +}; + +struct point82 demo82(struct point82 a) { + return a; +} + +struct point83 { + char x0; + short x1; + short x2; + float x3; + int x4; +}; + +struct point83 demo83(struct point83 a) { + return a; +} + +struct point84 { + char x0; + short x1; + short x2; + float x3; + float x4; +}; + +struct point84 demo84(struct point84 a) { + return a; +} + +struct point85 { + char x0; + short x1; + int x2; +}; + +struct point85 demo85(struct point85 a) { + return a; +} + +struct point86 { + char x0; + short x1; + int x2; + char x3; +}; + +struct point86 demo86(struct point86 a) { + return a; +} + +struct point87 { + char x0; + short x1; + int x2; + char x3; + char x4; +}; + +struct point87 demo87(struct point87 a) { + return a; +} + +struct point88 { + char x0; + short x1; + int x2; + char x3; + short x4; +}; + +struct point88 demo88(struct point88 a) { + return a; +} + +struct point89 { + char x0; + short x1; + int x2; + char x3; + int x4; +}; + +struct point89 demo89(struct point89 a) { + return a; +} + +struct point90 { + char x0; + short x1; + int x2; + char x3; + float x4; +}; + +struct point90 demo90(struct point90 a) { + return a; +} + +struct point91 { + char x0; + short x1; + int x2; + short x3; +}; + +struct point91 demo91(struct point91 a) { + return a; +} + +struct point92 { + char x0; + short x1; + int x2; + short x3; + char x4; +}; + +struct point92 demo92(struct point92 a) { + return a; +} + +struct point93 { + char x0; + short x1; + int x2; + short x3; + short x4; +}; + +struct point93 demo93(struct point93 a) { + return a; +} + +struct point94 { + char x0; + short x1; + int x2; + short x3; + int x4; +}; + +struct point94 demo94(struct point94 a) { + return a; +} + +struct point95 { + char x0; + short x1; + int x2; + short x3; + float x4; +}; + +struct point95 demo95(struct point95 a) { + return a; +} + +struct point96 { + char x0; + short x1; + int x2; + int x3; +}; + +struct point96 demo96(struct point96 a) { + return a; +} + +struct point97 { + char x0; + short x1; + int x2; + int x3; + char x4; +}; + +struct point97 demo97(struct point97 a) { + return a; +} + +struct point98 { + char x0; + short x1; + int x2; + int x3; + short x4; +}; + +struct point98 demo98(struct point98 a) { + return a; +} + +struct point99 { + char x0; + short x1; + int x2; + int x3; + int x4; +}; + +struct point99 demo99(struct point99 a) { + return a; +} + +struct point100 { + char x0; + short x1; + int x2; + int x3; + float x4; +}; + +struct point100 demo100(struct point100 a) { + return a; +} + +struct point101 { + char x0; + short x1; + int x2; + float x3; +}; + +struct point101 demo101(struct point101 a) { + return a; +} + +struct point102 { + char x0; + short x1; + int x2; + float x3; + char x4; +}; + +struct point102 demo102(struct point102 a) { + return a; +} + +struct point103 { + char x0; + short x1; + int x2; + float x3; + short x4; +}; + +struct point103 demo103(struct point103 a) { + return a; +} + +struct point104 { + char x0; + short x1; + int x2; + float x3; + int x4; +}; + +struct point104 demo104(struct point104 a) { + return a; +} + +struct point105 { + char x0; + short x1; + int x2; + float x3; + float x4; +}; + +struct point105 demo105(struct point105 a) { + return a; +} + +struct point106 { + char x0; + short x1; + float x2; +}; + +struct point106 demo106(struct point106 a) { + return a; +} + +struct point107 { + char x0; + short x1; + float x2; + char x3; +}; + +struct point107 demo107(struct point107 a) { + return a; +} + +struct point108 { + char x0; + short x1; + float x2; + char x3; + char x4; +}; + +struct point108 demo108(struct point108 a) { + return a; +} + +struct point109 { + char x0; + short x1; + float x2; + char x3; + short x4; +}; + +struct point109 demo109(struct point109 a) { + return a; +} + +struct point110 { + char x0; + short x1; + float x2; + char x3; + int x4; +}; + +struct point110 demo110(struct point110 a) { + return a; +} + +struct point111 { + char x0; + short x1; + float x2; + char x3; + float x4; +}; + +struct point111 demo111(struct point111 a) { + return a; +} + +struct point112 { + char x0; + short x1; + float x2; + short x3; +}; + +struct point112 demo112(struct point112 a) { + return a; +} + +struct point113 { + char x0; + short x1; + float x2; + short x3; + char x4; +}; + +struct point113 demo113(struct point113 a) { + return a; +} + +struct point114 { + char x0; + short x1; + float x2; + short x3; + short x4; +}; + +struct point114 demo114(struct point114 a) { + return a; +} + +struct point115 { + char x0; + short x1; + float x2; + short x3; + int x4; +}; + +struct point115 demo115(struct point115 a) { + return a; +} + +struct point116 { + char x0; + short x1; + float x2; + short x3; + float x4; +}; + +struct point116 demo116(struct point116 a) { + return a; +} + +struct point117 { + char x0; + short x1; + float x2; + int x3; +}; + +struct point117 demo117(struct point117 a) { + return a; +} + +struct point118 { + char x0; + short x1; + float x2; + int x3; + char x4; +}; + +struct point118 demo118(struct point118 a) { + return a; +} + +struct point119 { + char x0; + short x1; + float x2; + int x3; + short x4; +}; + +struct point119 demo119(struct point119 a) { + return a; +} + +struct point120 { + char x0; + short x1; + float x2; + int x3; + int x4; +}; + +struct point120 demo120(struct point120 a) { + return a; +} + +struct point121 { + char x0; + short x1; + float x2; + int x3; + float x4; +}; + +struct point121 demo121(struct point121 a) { + return a; +} + +struct point122 { + char x0; + short x1; + float x2; + float x3; +}; + +struct point122 demo122(struct point122 a) { + return a; +} + +struct point123 { + char x0; + short x1; + float x2; + float x3; + char x4; +}; + +struct point123 demo123(struct point123 a) { + return a; +} + +struct point124 { + char x0; + short x1; + float x2; + float x3; + short x4; +}; + +struct point124 demo124(struct point124 a) { + return a; +} + +struct point125 { + char x0; + short x1; + float x2; + float x3; + int x4; +}; + +struct point125 demo125(struct point125 a) { + return a; +} + +struct point126 { + char x0; + short x1; + float x2; + float x3; + float x4; +}; + +struct point126 demo126(struct point126 a) { + return a; +} + +struct point127 { + char x0; + int x1; + char x2; +}; + +struct point127 demo127(struct point127 a) { + return a; +} + +struct point128 { + char x0; + int x1; + char x2; + char x3; +}; + +struct point128 demo128(struct point128 a) { + return a; +} + +struct point129 { + char x0; + int x1; + char x2; + char x3; + char x4; +}; + +struct point129 demo129(struct point129 a) { + return a; +} + +struct point130 { + char x0; + int x1; + char x2; + char x3; + short x4; +}; + +struct point130 demo130(struct point130 a) { + return a; +} + +struct point131 { + char x0; + int x1; + char x2; + char x3; + int x4; +}; + +struct point131 demo131(struct point131 a) { + return a; +} + +struct point132 { + char x0; + int x1; + char x2; + char x3; + float x4; +}; + +struct point132 demo132(struct point132 a) { + return a; +} + +struct point133 { + char x0; + int x1; + char x2; + short x3; +}; + +struct point133 demo133(struct point133 a) { + return a; +} + +struct point134 { + char x0; + int x1; + char x2; + short x3; + char x4; +}; + +struct point134 demo134(struct point134 a) { + return a; +} + +struct point135 { + char x0; + int x1; + char x2; + short x3; + short x4; +}; + +struct point135 demo135(struct point135 a) { + return a; +} + +struct point136 { + char x0; + int x1; + char x2; + short x3; + int x4; +}; + +struct point136 demo136(struct point136 a) { + return a; +} + +struct point137 { + char x0; + int x1; + char x2; + short x3; + float x4; +}; + +struct point137 demo137(struct point137 a) { + return a; +} + +struct point138 { + char x0; + int x1; + char x2; + int x3; +}; + +struct point138 demo138(struct point138 a) { + return a; +} + +struct point139 { + char x0; + int x1; + char x2; + int x3; + char x4; +}; + +struct point139 demo139(struct point139 a) { + return a; +} + +struct point140 { + char x0; + int x1; + char x2; + int x3; + short x4; +}; + +struct point140 demo140(struct point140 a) { + return a; +} + +struct point141 { + char x0; + int x1; + char x2; + int x3; + int x4; +}; + +struct point141 demo141(struct point141 a) { + return a; +} + +struct point142 { + char x0; + int x1; + char x2; + int x3; + float x4; +}; + +struct point142 demo142(struct point142 a) { + return a; +} + +struct point143 { + char x0; + int x1; + char x2; + float x3; +}; + +struct point143 demo143(struct point143 a) { + return a; +} + +struct point144 { + char x0; + int x1; + char x2; + float x3; + char x4; +}; + +struct point144 demo144(struct point144 a) { + return a; +} + +struct point145 { + char x0; + int x1; + char x2; + float x3; + short x4; +}; + +struct point145 demo145(struct point145 a) { + return a; +} + +struct point146 { + char x0; + int x1; + char x2; + float x3; + int x4; +}; + +struct point146 demo146(struct point146 a) { + return a; +} + +struct point147 { + char x0; + int x1; + char x2; + float x3; + float x4; +}; + +struct point147 demo147(struct point147 a) { + return a; +} + +struct point148 { + char x0; + int x1; + short x2; +}; + +struct point148 demo148(struct point148 a) { + return a; +} + +struct point149 { + char x0; + int x1; + short x2; + char x3; +}; + +struct point149 demo149(struct point149 a) { + return a; +} + +struct point150 { + char x0; + int x1; + short x2; + char x3; + char x4; +}; + +struct point150 demo150(struct point150 a) { + return a; +} + +struct point151 { + char x0; + int x1; + short x2; + char x3; + short x4; +}; + +struct point151 demo151(struct point151 a) { + return a; +} + +struct point152 { + char x0; + int x1; + short x2; + char x3; + int x4; +}; + +struct point152 demo152(struct point152 a) { + return a; +} + +struct point153 { + char x0; + int x1; + short x2; + char x3; + float x4; +}; + +struct point153 demo153(struct point153 a) { + return a; +} + +struct point154 { + char x0; + int x1; + short x2; + short x3; +}; + +struct point154 demo154(struct point154 a) { + return a; +} + +struct point155 { + char x0; + int x1; + short x2; + short x3; + char x4; +}; + +struct point155 demo155(struct point155 a) { + return a; +} + +struct point156 { + char x0; + int x1; + short x2; + short x3; + short x4; +}; + +struct point156 demo156(struct point156 a) { + return a; +} + +struct point157 { + char x0; + int x1; + short x2; + short x3; + int x4; +}; + +struct point157 demo157(struct point157 a) { + return a; +} + +struct point158 { + char x0; + int x1; + short x2; + short x3; + float x4; +}; + +struct point158 demo158(struct point158 a) { + return a; +} + +struct point159 { + char x0; + int x1; + short x2; + int x3; +}; + +struct point159 demo159(struct point159 a) { + return a; +} + +struct point160 { + char x0; + int x1; + short x2; + int x3; + char x4; +}; + +struct point160 demo160(struct point160 a) { + return a; +} + +struct point161 { + char x0; + int x1; + short x2; + int x3; + short x4; +}; + +struct point161 demo161(struct point161 a) { + return a; +} + +struct point162 { + char x0; + int x1; + short x2; + int x3; + int x4; +}; + +struct point162 demo162(struct point162 a) { + return a; +} + +struct point163 { + char x0; + int x1; + short x2; + int x3; + float x4; +}; + +struct point163 demo163(struct point163 a) { + return a; +} + +struct point164 { + char x0; + int x1; + short x2; + float x3; +}; + +struct point164 demo164(struct point164 a) { + return a; +} + +struct point165 { + char x0; + int x1; + short x2; + float x3; + char x4; +}; + +struct point165 demo165(struct point165 a) { + return a; +} + +struct point166 { + char x0; + int x1; + short x2; + float x3; + short x4; +}; + +struct point166 demo166(struct point166 a) { + return a; +} + +struct point167 { + char x0; + int x1; + short x2; + float x3; + int x4; +}; + +struct point167 demo167(struct point167 a) { + return a; +} + +struct point168 { + char x0; + int x1; + short x2; + float x3; + float x4; +}; + +struct point168 demo168(struct point168 a) { + return a; +} + +struct point169 { + char x0; + int x1; + int x2; +}; + +struct point169 demo169(struct point169 a) { + return a; +} + +struct point170 { + char x0; + int x1; + int x2; + char x3; +}; + +struct point170 demo170(struct point170 a) { + return a; +} + +struct point171 { + char x0; + int x1; + int x2; + char x3; + char x4; +}; + +struct point171 demo171(struct point171 a) { + return a; +} + +struct point172 { + char x0; + int x1; + int x2; + char x3; + short x4; +}; + +struct point172 demo172(struct point172 a) { + return a; +} + +struct point173 { + char x0; + int x1; + int x2; + char x3; + int x4; +}; + +struct point173 demo173(struct point173 a) { + return a; +} + +struct point174 { + char x0; + int x1; + int x2; + char x3; + float x4; +}; + +struct point174 demo174(struct point174 a) { + return a; +} + +struct point175 { + char x0; + int x1; + int x2; + short x3; +}; + +struct point175 demo175(struct point175 a) { + return a; +} + +struct point176 { + char x0; + int x1; + int x2; + short x3; + char x4; +}; + +struct point176 demo176(struct point176 a) { + return a; +} + +struct point177 { + char x0; + int x1; + int x2; + short x3; + short x4; +}; + +struct point177 demo177(struct point177 a) { + return a; +} + +struct point178 { + char x0; + int x1; + int x2; + short x3; + int x4; +}; + +struct point178 demo178(struct point178 a) { + return a; +} + +struct point179 { + char x0; + int x1; + int x2; + short x3; + float x4; +}; + +struct point179 demo179(struct point179 a) { + return a; +} + +struct point180 { + char x0; + int x1; + int x2; + int x3; +}; + +struct point180 demo180(struct point180 a) { + return a; +} + +struct point181 { + char x0; + int x1; + int x2; + int x3; + char x4; +}; + +struct point181 demo181(struct point181 a) { + return a; +} + +struct point182 { + char x0; + int x1; + int x2; + int x3; + short x4; +}; + +struct point182 demo182(struct point182 a) { + return a; +} + +struct point183 { + char x0; + int x1; + int x2; + int x3; + int x4; +}; + +struct point183 demo183(struct point183 a) { + return a; +} + +struct point184 { + char x0; + int x1; + int x2; + int x3; + float x4; +}; + +struct point184 demo184(struct point184 a) { + return a; +} + +struct point185 { + char x0; + int x1; + int x2; + float x3; +}; + +struct point185 demo185(struct point185 a) { + return a; +} + +struct point186 { + char x0; + int x1; + int x2; + float x3; + char x4; +}; + +struct point186 demo186(struct point186 a) { + return a; +} + +struct point187 { + char x0; + int x1; + int x2; + float x3; + short x4; +}; + +struct point187 demo187(struct point187 a) { + return a; +} + +struct point188 { + char x0; + int x1; + int x2; + float x3; + int x4; +}; + +struct point188 demo188(struct point188 a) { + return a; +} + +struct point189 { + char x0; + int x1; + int x2; + float x3; + float x4; +}; + +struct point189 demo189(struct point189 a) { + return a; +} + +struct point190 { + char x0; + int x1; + float x2; +}; + +struct point190 demo190(struct point190 a) { + return a; +} + +struct point191 { + char x0; + int x1; + float x2; + char x3; +}; + +struct point191 demo191(struct point191 a) { + return a; +} + +struct point192 { + char x0; + int x1; + float x2; + char x3; + char x4; +}; + +struct point192 demo192(struct point192 a) { + return a; +} + +struct point193 { + char x0; + int x1; + float x2; + char x3; + short x4; +}; + +struct point193 demo193(struct point193 a) { + return a; +} + +struct point194 { + char x0; + int x1; + float x2; + char x3; + int x4; +}; + +struct point194 demo194(struct point194 a) { + return a; +} + +struct point195 { + char x0; + int x1; + float x2; + char x3; + float x4; +}; + +struct point195 demo195(struct point195 a) { + return a; +} + +struct point196 { + char x0; + int x1; + float x2; + short x3; +}; + +struct point196 demo196(struct point196 a) { + return a; +} + +struct point197 { + char x0; + int x1; + float x2; + short x3; + char x4; +}; + +struct point197 demo197(struct point197 a) { + return a; +} + +struct point198 { + char x0; + int x1; + float x2; + short x3; + short x4; +}; + +struct point198 demo198(struct point198 a) { + return a; +} + +struct point199 { + char x0; + int x1; + float x2; + short x3; + int x4; +}; + +struct point199 demo199(struct point199 a) { + return a; +} + +struct point200 { + char x0; + int x1; + float x2; + short x3; + float x4; +}; + +struct point200 demo200(struct point200 a) { + return a; +} + +struct point201 { + char x0; + int x1; + float x2; + int x3; +}; + +struct point201 demo201(struct point201 a) { + return a; +} + +struct point202 { + char x0; + int x1; + float x2; + int x3; + char x4; +}; + +struct point202 demo202(struct point202 a) { + return a; +} + +struct point203 { + char x0; + int x1; + float x2; + int x3; + short x4; +}; + +struct point203 demo203(struct point203 a) { + return a; +} + +struct point204 { + char x0; + int x1; + float x2; + int x3; + int x4; +}; + +struct point204 demo204(struct point204 a) { + return a; +} + +struct point205 { + char x0; + int x1; + float x2; + int x3; + float x4; +}; + +struct point205 demo205(struct point205 a) { + return a; +} + +struct point206 { + char x0; + int x1; + float x2; + float x3; +}; + +struct point206 demo206(struct point206 a) { + return a; +} + +struct point207 { + char x0; + int x1; + float x2; + float x3; + char x4; +}; + +struct point207 demo207(struct point207 a) { + return a; +} + +struct point208 { + char x0; + int x1; + float x2; + float x3; + short x4; +}; + +struct point208 demo208(struct point208 a) { + return a; +} + +struct point209 { + char x0; + int x1; + float x2; + float x3; + int x4; +}; + +struct point209 demo209(struct point209 a) { + return a; +} + +struct point210 { + char x0; + int x1; + float x2; + float x3; + float x4; +}; + +struct point210 demo210(struct point210 a) { + return a; +} + +struct point211 { + char x0; + float x1; + char x2; +}; + +struct point211 demo211(struct point211 a) { + return a; +} + +struct point212 { + char x0; + float x1; + char x2; + char x3; +}; + +struct point212 demo212(struct point212 a) { + return a; +} + +struct point213 { + char x0; + float x1; + char x2; + char x3; + char x4; +}; + +struct point213 demo213(struct point213 a) { + return a; +} + +struct point214 { + char x0; + float x1; + char x2; + char x3; + short x4; +}; + +struct point214 demo214(struct point214 a) { + return a; +} + +struct point215 { + char x0; + float x1; + char x2; + char x3; + int x4; +}; + +struct point215 demo215(struct point215 a) { + return a; +} + +struct point216 { + char x0; + float x1; + char x2; + char x3; + float x4; +}; + +struct point216 demo216(struct point216 a) { + return a; +} + +struct point217 { + char x0; + float x1; + char x2; + short x3; +}; + +struct point217 demo217(struct point217 a) { + return a; +} + +struct point218 { + char x0; + float x1; + char x2; + short x3; + char x4; +}; + +struct point218 demo218(struct point218 a) { + return a; +} + +struct point219 { + char x0; + float x1; + char x2; + short x3; + short x4; +}; + +struct point219 demo219(struct point219 a) { + return a; +} + +struct point220 { + char x0; + float x1; + char x2; + short x3; + int x4; +}; + +struct point220 demo220(struct point220 a) { + return a; +} + +struct point221 { + char x0; + float x1; + char x2; + short x3; + float x4; +}; + +struct point221 demo221(struct point221 a) { + return a; +} + +struct point222 { + char x0; + float x1; + char x2; + int x3; +}; + +struct point222 demo222(struct point222 a) { + return a; +} + +struct point223 { + char x0; + float x1; + char x2; + int x3; + char x4; +}; + +struct point223 demo223(struct point223 a) { + return a; +} + +struct point224 { + char x0; + float x1; + char x2; + int x3; + short x4; +}; + +struct point224 demo224(struct point224 a) { + return a; +} + +struct point225 { + char x0; + float x1; + char x2; + int x3; + int x4; +}; + +struct point225 demo225(struct point225 a) { + return a; +} + +struct point226 { + char x0; + float x1; + char x2; + int x3; + float x4; +}; + +struct point226 demo226(struct point226 a) { + return a; +} + +struct point227 { + char x0; + float x1; + char x2; + float x3; +}; + +struct point227 demo227(struct point227 a) { + return a; +} + +struct point228 { + char x0; + float x1; + char x2; + float x3; + char x4; +}; + +struct point228 demo228(struct point228 a) { + return a; +} + +struct point229 { + char x0; + float x1; + char x2; + float x3; + short x4; +}; + +struct point229 demo229(struct point229 a) { + return a; +} + +struct point230 { + char x0; + float x1; + char x2; + float x3; + int x4; +}; + +struct point230 demo230(struct point230 a) { + return a; +} + +struct point231 { + char x0; + float x1; + char x2; + float x3; + float x4; +}; + +struct point231 demo231(struct point231 a) { + return a; +} + +struct point232 { + char x0; + float x1; + short x2; +}; + +struct point232 demo232(struct point232 a) { + return a; +} + +struct point233 { + char x0; + float x1; + short x2; + char x3; +}; + +struct point233 demo233(struct point233 a) { + return a; +} + +struct point234 { + char x0; + float x1; + short x2; + char x3; + char x4; +}; + +struct point234 demo234(struct point234 a) { + return a; +} + +struct point235 { + char x0; + float x1; + short x2; + char x3; + short x4; +}; + +struct point235 demo235(struct point235 a) { + return a; +} + +struct point236 { + char x0; + float x1; + short x2; + char x3; + int x4; +}; + +struct point236 demo236(struct point236 a) { + return a; +} + +struct point237 { + char x0; + float x1; + short x2; + char x3; + float x4; +}; + +struct point237 demo237(struct point237 a) { + return a; +} + +struct point238 { + char x0; + float x1; + short x2; + short x3; +}; + +struct point238 demo238(struct point238 a) { + return a; +} + +struct point239 { + char x0; + float x1; + short x2; + short x3; + char x4; +}; + +struct point239 demo239(struct point239 a) { + return a; +} + +struct point240 { + char x0; + float x1; + short x2; + short x3; + short x4; +}; + +struct point240 demo240(struct point240 a) { + return a; +} + +struct point241 { + char x0; + float x1; + short x2; + short x3; + int x4; +}; + +struct point241 demo241(struct point241 a) { + return a; +} + +struct point242 { + char x0; + float x1; + short x2; + short x3; + float x4; +}; + +struct point242 demo242(struct point242 a) { + return a; +} + +struct point243 { + char x0; + float x1; + short x2; + int x3; +}; + +struct point243 demo243(struct point243 a) { + return a; +} + +struct point244 { + char x0; + float x1; + short x2; + int x3; + char x4; +}; + +struct point244 demo244(struct point244 a) { + return a; +} + +struct point245 { + char x0; + float x1; + short x2; + int x3; + short x4; +}; + +struct point245 demo245(struct point245 a) { + return a; +} + +struct point246 { + char x0; + float x1; + short x2; + int x3; + int x4; +}; + +struct point246 demo246(struct point246 a) { + return a; +} + +struct point247 { + char x0; + float x1; + short x2; + int x3; + float x4; +}; + +struct point247 demo247(struct point247 a) { + return a; +} + +struct point248 { + char x0; + float x1; + short x2; + float x3; +}; + +struct point248 demo248(struct point248 a) { + return a; +} + +struct point249 { + char x0; + float x1; + short x2; + float x3; + char x4; +}; + +struct point249 demo249(struct point249 a) { + return a; +} + +struct point250 { + char x0; + float x1; + short x2; + float x3; + short x4; +}; + +struct point250 demo250(struct point250 a) { + return a; +} + +struct point251 { + char x0; + float x1; + short x2; + float x3; + int x4; +}; + +struct point251 demo251(struct point251 a) { + return a; +} + +struct point252 { + char x0; + float x1; + short x2; + float x3; + float x4; +}; + +struct point252 demo252(struct point252 a) { + return a; +} + +struct point253 { + char x0; + float x1; + int x2; +}; + +struct point253 demo253(struct point253 a) { + return a; +} + +struct point254 { + char x0; + float x1; + int x2; + char x3; +}; + +struct point254 demo254(struct point254 a) { + return a; +} + +struct point255 { + char x0; + float x1; + int x2; + char x3; + char x4; +}; + +struct point255 demo255(struct point255 a) { + return a; +} + +struct point256 { + char x0; + float x1; + int x2; + char x3; + short x4; +}; + +struct point256 demo256(struct point256 a) { + return a; +} + +struct point257 { + char x0; + float x1; + int x2; + char x3; + int x4; +}; + +struct point257 demo257(struct point257 a) { + return a; +} + +struct point258 { + char x0; + float x1; + int x2; + char x3; + float x4; +}; + +struct point258 demo258(struct point258 a) { + return a; +} + +struct point259 { + char x0; + float x1; + int x2; + short x3; +}; + +struct point259 demo259(struct point259 a) { + return a; +} + +struct point260 { + char x0; + float x1; + int x2; + short x3; + char x4; +}; + +struct point260 demo260(struct point260 a) { + return a; +} + +struct point261 { + char x0; + float x1; + int x2; + short x3; + short x4; +}; + +struct point261 demo261(struct point261 a) { + return a; +} + +struct point262 { + char x0; + float x1; + int x2; + short x3; + int x4; +}; + +struct point262 demo262(struct point262 a) { + return a; +} + +struct point263 { + char x0; + float x1; + int x2; + short x3; + float x4; +}; + +struct point263 demo263(struct point263 a) { + return a; +} + +struct point264 { + char x0; + float x1; + int x2; + int x3; +}; + +struct point264 demo264(struct point264 a) { + return a; +} + +struct point265 { + char x0; + float x1; + int x2; + int x3; + char x4; +}; + +struct point265 demo265(struct point265 a) { + return a; +} + +struct point266 { + char x0; + float x1; + int x2; + int x3; + short x4; +}; + +struct point266 demo266(struct point266 a) { + return a; +} + +struct point267 { + char x0; + float x1; + int x2; + int x3; + int x4; +}; + +struct point267 demo267(struct point267 a) { + return a; +} + +struct point268 { + char x0; + float x1; + int x2; + int x3; + float x4; +}; + +struct point268 demo268(struct point268 a) { + return a; +} + +struct point269 { + char x0; + float x1; + int x2; + float x3; +}; + +struct point269 demo269(struct point269 a) { + return a; +} + +struct point270 { + char x0; + float x1; + int x2; + float x3; + char x4; +}; + +struct point270 demo270(struct point270 a) { + return a; +} + +struct point271 { + char x0; + float x1; + int x2; + float x3; + short x4; +}; + +struct point271 demo271(struct point271 a) { + return a; +} + +struct point272 { + char x0; + float x1; + int x2; + float x3; + int x4; +}; + +struct point272 demo272(struct point272 a) { + return a; +} + +struct point273 { + char x0; + float x1; + int x2; + float x3; + float x4; +}; + +struct point273 demo273(struct point273 a) { + return a; +} + +struct point274 { + char x0; + float x1; + float x2; +}; + +struct point274 demo274(struct point274 a) { + return a; +} + +struct point275 { + char x0; + float x1; + float x2; + char x3; +}; + +struct point275 demo275(struct point275 a) { + return a; +} + +struct point276 { + char x0; + float x1; + float x2; + char x3; + char x4; +}; + +struct point276 demo276(struct point276 a) { + return a; +} + +struct point277 { + char x0; + float x1; + float x2; + char x3; + short x4; +}; + +struct point277 demo277(struct point277 a) { + return a; +} + +struct point278 { + char x0; + float x1; + float x2; + char x3; + int x4; +}; + +struct point278 demo278(struct point278 a) { + return a; +} + +struct point279 { + char x0; + float x1; + float x2; + char x3; + float x4; +}; + +struct point279 demo279(struct point279 a) { + return a; +} + +struct point280 { + char x0; + float x1; + float x2; + short x3; +}; + +struct point280 demo280(struct point280 a) { + return a; +} + +struct point281 { + char x0; + float x1; + float x2; + short x3; + char x4; +}; + +struct point281 demo281(struct point281 a) { + return a; +} + +struct point282 { + char x0; + float x1; + float x2; + short x3; + short x4; +}; + +struct point282 demo282(struct point282 a) { + return a; +} + +struct point283 { + char x0; + float x1; + float x2; + short x3; + int x4; +}; + +struct point283 demo283(struct point283 a) { + return a; +} + +struct point284 { + char x0; + float x1; + float x2; + short x3; + float x4; +}; + +struct point284 demo284(struct point284 a) { + return a; +} + +struct point285 { + char x0; + float x1; + float x2; + int x3; +}; + +struct point285 demo285(struct point285 a) { + return a; +} + +struct point286 { + char x0; + float x1; + float x2; + int x3; + char x4; +}; + +struct point286 demo286(struct point286 a) { + return a; +} + +struct point287 { + char x0; + float x1; + float x2; + int x3; + short x4; +}; + +struct point287 demo287(struct point287 a) { + return a; +} + +struct point288 { + char x0; + float x1; + float x2; + int x3; + int x4; +}; + +struct point288 demo288(struct point288 a) { + return a; +} + +struct point289 { + char x0; + float x1; + float x2; + int x3; + float x4; +}; + +struct point289 demo289(struct point289 a) { + return a; +} + +struct point290 { + char x0; + float x1; + float x2; + float x3; +}; + +struct point290 demo290(struct point290 a) { + return a; +} + +struct point291 { + char x0; + float x1; + float x2; + float x3; + char x4; +}; + +struct point291 demo291(struct point291 a) { + return a; +} + +struct point292 { + char x0; + float x1; + float x2; + float x3; + short x4; +}; + +struct point292 demo292(struct point292 a) { + return a; +} + +struct point293 { + char x0; + float x1; + float x2; + float x3; + int x4; +}; + +struct point293 demo293(struct point293 a) { + return a; +} + +struct point294 { + char x0; + float x1; + float x2; + float x3; + float x4; +}; + +struct point294 demo294(struct point294 a) { + return a; +} + +struct point295 { + short x0; + char x1; + char x2; +}; + +struct point295 demo295(struct point295 a) { + return a; +} + +struct point296 { + short x0; + char x1; + char x2; + char x3; +}; + +struct point296 demo296(struct point296 a) { + return a; +} + +struct point297 { + short x0; + char x1; + char x2; + char x3; + char x4; +}; + +struct point297 demo297(struct point297 a) { + return a; +} + +struct point298 { + short x0; + char x1; + char x2; + char x3; + short x4; +}; + +struct point298 demo298(struct point298 a) { + return a; +} + +struct point299 { + short x0; + char x1; + char x2; + char x3; + int x4; +}; + +struct point299 demo299(struct point299 a) { + return a; +} + +struct point300 { + short x0; + char x1; + char x2; + char x3; + float x4; +}; + +struct point300 demo300(struct point300 a) { + return a; +} + +struct point301 { + short x0; + char x1; + char x2; + short x3; +}; + +struct point301 demo301(struct point301 a) { + return a; +} + +struct point302 { + short x0; + char x1; + char x2; + short x3; + char x4; +}; + +struct point302 demo302(struct point302 a) { + return a; +} + +struct point303 { + short x0; + char x1; + char x2; + short x3; + short x4; +}; + +struct point303 demo303(struct point303 a) { + return a; +} + +struct point304 { + short x0; + char x1; + char x2; + short x3; + int x4; +}; + +struct point304 demo304(struct point304 a) { + return a; +} + +struct point305 { + short x0; + char x1; + char x2; + short x3; + float x4; +}; + +struct point305 demo305(struct point305 a) { + return a; +} + +struct point306 { + short x0; + char x1; + char x2; + int x3; +}; + +struct point306 demo306(struct point306 a) { + return a; +} + +struct point307 { + short x0; + char x1; + char x2; + int x3; + char x4; +}; + +struct point307 demo307(struct point307 a) { + return a; +} + +struct point308 { + short x0; + char x1; + char x2; + int x3; + short x4; +}; + +struct point308 demo308(struct point308 a) { + return a; +} + +struct point309 { + short x0; + char x1; + char x2; + int x3; + int x4; +}; + +struct point309 demo309(struct point309 a) { + return a; +} + +struct point310 { + short x0; + char x1; + char x2; + int x3; + float x4; +}; + +struct point310 demo310(struct point310 a) { + return a; +} + +struct point311 { + short x0; + char x1; + char x2; + float x3; +}; + +struct point311 demo311(struct point311 a) { + return a; +} + +struct point312 { + short x0; + char x1; + char x2; + float x3; + char x4; +}; + +struct point312 demo312(struct point312 a) { + return a; +} + +struct point313 { + short x0; + char x1; + char x2; + float x3; + short x4; +}; + +struct point313 demo313(struct point313 a) { + return a; +} + +struct point314 { + short x0; + char x1; + char x2; + float x3; + int x4; +}; + +struct point314 demo314(struct point314 a) { + return a; +} + +struct point315 { + short x0; + char x1; + char x2; + float x3; + float x4; +}; + +struct point315 demo315(struct point315 a) { + return a; +} + +struct point316 { + short x0; + char x1; + short x2; +}; + +struct point316 demo316(struct point316 a) { + return a; +} + +struct point317 { + short x0; + char x1; + short x2; + char x3; +}; + +struct point317 demo317(struct point317 a) { + return a; +} + +struct point318 { + short x0; + char x1; + short x2; + char x3; + char x4; +}; + +struct point318 demo318(struct point318 a) { + return a; +} + +struct point319 { + short x0; + char x1; + short x2; + char x3; + short x4; +}; + +struct point319 demo319(struct point319 a) { + return a; +} + +struct point320 { + short x0; + char x1; + short x2; + char x3; + int x4; +}; + +struct point320 demo320(struct point320 a) { + return a; +} + +struct point321 { + short x0; + char x1; + short x2; + char x3; + float x4; +}; + +struct point321 demo321(struct point321 a) { + return a; +} + +struct point322 { + short x0; + char x1; + short x2; + short x3; +}; + +struct point322 demo322(struct point322 a) { + return a; +} + +struct point323 { + short x0; + char x1; + short x2; + short x3; + char x4; +}; + +struct point323 demo323(struct point323 a) { + return a; +} + +struct point324 { + short x0; + char x1; + short x2; + short x3; + short x4; +}; + +struct point324 demo324(struct point324 a) { + return a; +} + +struct point325 { + short x0; + char x1; + short x2; + short x3; + int x4; +}; + +struct point325 demo325(struct point325 a) { + return a; +} + +struct point326 { + short x0; + char x1; + short x2; + short x3; + float x4; +}; + +struct point326 demo326(struct point326 a) { + return a; +} + +struct point327 { + short x0; + char x1; + short x2; + int x3; +}; + +struct point327 demo327(struct point327 a) { + return a; +} + +struct point328 { + short x0; + char x1; + short x2; + int x3; + char x4; +}; + +struct point328 demo328(struct point328 a) { + return a; +} + +struct point329 { + short x0; + char x1; + short x2; + int x3; + short x4; +}; + +struct point329 demo329(struct point329 a) { + return a; +} + +struct point330 { + short x0; + char x1; + short x2; + int x3; + int x4; +}; + +struct point330 demo330(struct point330 a) { + return a; +} + +struct point331 { + short x0; + char x1; + short x2; + int x3; + float x4; +}; + +struct point331 demo331(struct point331 a) { + return a; +} + +struct point332 { + short x0; + char x1; + short x2; + float x3; +}; + +struct point332 demo332(struct point332 a) { + return a; +} + +struct point333 { + short x0; + char x1; + short x2; + float x3; + char x4; +}; + +struct point333 demo333(struct point333 a) { + return a; +} + +struct point334 { + short x0; + char x1; + short x2; + float x3; + short x4; +}; + +struct point334 demo334(struct point334 a) { + return a; +} + +struct point335 { + short x0; + char x1; + short x2; + float x3; + int x4; +}; + +struct point335 demo335(struct point335 a) { + return a; +} + +struct point336 { + short x0; + char x1; + short x2; + float x3; + float x4; +}; + +struct point336 demo336(struct point336 a) { + return a; +} + +struct point337 { + short x0; + char x1; + int x2; +}; + +struct point337 demo337(struct point337 a) { + return a; +} + +struct point338 { + short x0; + char x1; + int x2; + char x3; +}; + +struct point338 demo338(struct point338 a) { + return a; +} + +struct point339 { + short x0; + char x1; + int x2; + char x3; + char x4; +}; + +struct point339 demo339(struct point339 a) { + return a; +} + +struct point340 { + short x0; + char x1; + int x2; + char x3; + short x4; +}; + +struct point340 demo340(struct point340 a) { + return a; +} + +struct point341 { + short x0; + char x1; + int x2; + char x3; + int x4; +}; + +struct point341 demo341(struct point341 a) { + return a; +} + +struct point342 { + short x0; + char x1; + int x2; + char x3; + float x4; +}; + +struct point342 demo342(struct point342 a) { + return a; +} + +struct point343 { + short x0; + char x1; + int x2; + short x3; +}; + +struct point343 demo343(struct point343 a) { + return a; +} + +struct point344 { + short x0; + char x1; + int x2; + short x3; + char x4; +}; + +struct point344 demo344(struct point344 a) { + return a; +} + +struct point345 { + short x0; + char x1; + int x2; + short x3; + short x4; +}; + +struct point345 demo345(struct point345 a) { + return a; +} + +struct point346 { + short x0; + char x1; + int x2; + short x3; + int x4; +}; + +struct point346 demo346(struct point346 a) { + return a; +} + +struct point347 { + short x0; + char x1; + int x2; + short x3; + float x4; +}; + +struct point347 demo347(struct point347 a) { + return a; +} + +struct point348 { + short x0; + char x1; + int x2; + int x3; +}; + +struct point348 demo348(struct point348 a) { + return a; +} + +struct point349 { + short x0; + char x1; + int x2; + int x3; + char x4; +}; + +struct point349 demo349(struct point349 a) { + return a; +} + +struct point350 { + short x0; + char x1; + int x2; + int x3; + short x4; +}; + +struct point350 demo350(struct point350 a) { + return a; +} + +struct point351 { + short x0; + char x1; + int x2; + int x3; + int x4; +}; + +struct point351 demo351(struct point351 a) { + return a; +} + +struct point352 { + short x0; + char x1; + int x2; + int x3; + float x4; +}; + +struct point352 demo352(struct point352 a) { + return a; +} + +struct point353 { + short x0; + char x1; + int x2; + float x3; +}; + +struct point353 demo353(struct point353 a) { + return a; +} + +struct point354 { + short x0; + char x1; + int x2; + float x3; + char x4; +}; + +struct point354 demo354(struct point354 a) { + return a; +} + +struct point355 { + short x0; + char x1; + int x2; + float x3; + short x4; +}; + +struct point355 demo355(struct point355 a) { + return a; +} + +struct point356 { + short x0; + char x1; + int x2; + float x3; + int x4; +}; + +struct point356 demo356(struct point356 a) { + return a; +} + +struct point357 { + short x0; + char x1; + int x2; + float x3; + float x4; +}; + +struct point357 demo357(struct point357 a) { + return a; +} + +struct point358 { + short x0; + char x1; + float x2; +}; + +struct point358 demo358(struct point358 a) { + return a; +} + +struct point359 { + short x0; + char x1; + float x2; + char x3; +}; + +struct point359 demo359(struct point359 a) { + return a; +} + +struct point360 { + short x0; + char x1; + float x2; + char x3; + char x4; +}; + +struct point360 demo360(struct point360 a) { + return a; +} + +struct point361 { + short x0; + char x1; + float x2; + char x3; + short x4; +}; + +struct point361 demo361(struct point361 a) { + return a; +} + +struct point362 { + short x0; + char x1; + float x2; + char x3; + int x4; +}; + +struct point362 demo362(struct point362 a) { + return a; +} + +struct point363 { + short x0; + char x1; + float x2; + char x3; + float x4; +}; + +struct point363 demo363(struct point363 a) { + return a; +} + +struct point364 { + short x0; + char x1; + float x2; + short x3; +}; + +struct point364 demo364(struct point364 a) { + return a; +} + +struct point365 { + short x0; + char x1; + float x2; + short x3; + char x4; +}; + +struct point365 demo365(struct point365 a) { + return a; +} + +struct point366 { + short x0; + char x1; + float x2; + short x3; + short x4; +}; + +struct point366 demo366(struct point366 a) { + return a; +} + +struct point367 { + short x0; + char x1; + float x2; + short x3; + int x4; +}; + +struct point367 demo367(struct point367 a) { + return a; +} + +struct point368 { + short x0; + char x1; + float x2; + short x3; + float x4; +}; + +struct point368 demo368(struct point368 a) { + return a; +} + +struct point369 { + short x0; + char x1; + float x2; + int x3; +}; + +struct point369 demo369(struct point369 a) { + return a; +} + +struct point370 { + short x0; + char x1; + float x2; + int x3; + char x4; +}; + +struct point370 demo370(struct point370 a) { + return a; +} + +struct point371 { + short x0; + char x1; + float x2; + int x3; + short x4; +}; + +struct point371 demo371(struct point371 a) { + return a; +} + +struct point372 { + short x0; + char x1; + float x2; + int x3; + int x4; +}; + +struct point372 demo372(struct point372 a) { + return a; +} + +struct point373 { + short x0; + char x1; + float x2; + int x3; + float x4; +}; + +struct point373 demo373(struct point373 a) { + return a; +} + +struct point374 { + short x0; + char x1; + float x2; + float x3; +}; + +struct point374 demo374(struct point374 a) { + return a; +} + +struct point375 { + short x0; + char x1; + float x2; + float x3; + char x4; +}; + +struct point375 demo375(struct point375 a) { + return a; +} + +struct point376 { + short x0; + char x1; + float x2; + float x3; + short x4; +}; + +struct point376 demo376(struct point376 a) { + return a; +} + +struct point377 { + short x0; + char x1; + float x2; + float x3; + int x4; +}; + +struct point377 demo377(struct point377 a) { + return a; +} + +struct point378 { + short x0; + char x1; + float x2; + float x3; + float x4; +}; + +struct point378 demo378(struct point378 a) { + return a; +} + +struct point379 { + short x0; + int x1; + char x2; +}; + +struct point379 demo379(struct point379 a) { + return a; +} + +struct point380 { + short x0; + int x1; + char x2; + char x3; +}; + +struct point380 demo380(struct point380 a) { + return a; +} + +struct point381 { + short x0; + int x1; + char x2; + char x3; + char x4; +}; + +struct point381 demo381(struct point381 a) { + return a; +} + +struct point382 { + short x0; + int x1; + char x2; + char x3; + short x4; +}; + +struct point382 demo382(struct point382 a) { + return a; +} + +struct point383 { + short x0; + int x1; + char x2; + char x3; + int x4; +}; + +struct point383 demo383(struct point383 a) { + return a; +} + +struct point384 { + short x0; + int x1; + char x2; + char x3; + float x4; +}; + +struct point384 demo384(struct point384 a) { + return a; +} + +struct point385 { + short x0; + int x1; + char x2; + short x3; +}; + +struct point385 demo385(struct point385 a) { + return a; +} + +struct point386 { + short x0; + int x1; + char x2; + short x3; + char x4; +}; + +struct point386 demo386(struct point386 a) { + return a; +} + +struct point387 { + short x0; + int x1; + char x2; + short x3; + short x4; +}; + +struct point387 demo387(struct point387 a) { + return a; +} + +struct point388 { + short x0; + int x1; + char x2; + short x3; + int x4; +}; + +struct point388 demo388(struct point388 a) { + return a; +} + +struct point389 { + short x0; + int x1; + char x2; + short x3; + float x4; +}; + +struct point389 demo389(struct point389 a) { + return a; +} + +struct point390 { + short x0; + int x1; + char x2; + int x3; +}; + +struct point390 demo390(struct point390 a) { + return a; +} + +struct point391 { + short x0; + int x1; + char x2; + int x3; + char x4; +}; + +struct point391 demo391(struct point391 a) { + return a; +} + +struct point392 { + short x0; + int x1; + char x2; + int x3; + short x4; +}; + +struct point392 demo392(struct point392 a) { + return a; +} + +struct point393 { + short x0; + int x1; + char x2; + int x3; + int x4; +}; + +struct point393 demo393(struct point393 a) { + return a; +} + +struct point394 { + short x0; + int x1; + char x2; + int x3; + float x4; +}; + +struct point394 demo394(struct point394 a) { + return a; +} + +struct point395 { + short x0; + int x1; + char x2; + float x3; +}; + +struct point395 demo395(struct point395 a) { + return a; +} + +struct point396 { + short x0; + int x1; + char x2; + float x3; + char x4; +}; + +struct point396 demo396(struct point396 a) { + return a; +} + +struct point397 { + short x0; + int x1; + char x2; + float x3; + short x4; +}; + +struct point397 demo397(struct point397 a) { + return a; +} + +struct point398 { + short x0; + int x1; + char x2; + float x3; + int x4; +}; + +struct point398 demo398(struct point398 a) { + return a; +} + +struct point399 { + short x0; + int x1; + char x2; + float x3; + float x4; +}; + +struct point399 demo399(struct point399 a) { + return a; +} + +struct point400 { + short x0; + int x1; + short x2; +}; + +struct point400 demo400(struct point400 a) { + return a; +} + +struct point401 { + short x0; + int x1; + short x2; + char x3; +}; + +struct point401 demo401(struct point401 a) { + return a; +} + +struct point402 { + short x0; + int x1; + short x2; + char x3; + char x4; +}; + +struct point402 demo402(struct point402 a) { + return a; +} + +struct point403 { + short x0; + int x1; + short x2; + char x3; + short x4; +}; + +struct point403 demo403(struct point403 a) { + return a; +} + +struct point404 { + short x0; + int x1; + short x2; + char x3; + int x4; +}; + +struct point404 demo404(struct point404 a) { + return a; +} + +struct point405 { + short x0; + int x1; + short x2; + char x3; + float x4; +}; + +struct point405 demo405(struct point405 a) { + return a; +} + +struct point406 { + short x0; + int x1; + short x2; + short x3; +}; + +struct point406 demo406(struct point406 a) { + return a; +} + +struct point407 { + short x0; + int x1; + short x2; + short x3; + char x4; +}; + +struct point407 demo407(struct point407 a) { + return a; +} + +struct point408 { + short x0; + int x1; + short x2; + short x3; + short x4; +}; + +struct point408 demo408(struct point408 a) { + return a; +} + +struct point409 { + short x0; + int x1; + short x2; + short x3; + int x4; +}; + +struct point409 demo409(struct point409 a) { + return a; +} + +struct point410 { + short x0; + int x1; + short x2; + short x3; + float x4; +}; + +struct point410 demo410(struct point410 a) { + return a; +} + +struct point411 { + short x0; + int x1; + short x2; + int x3; +}; + +struct point411 demo411(struct point411 a) { + return a; +} + +struct point412 { + short x0; + int x1; + short x2; + int x3; + char x4; +}; + +struct point412 demo412(struct point412 a) { + return a; +} + +struct point413 { + short x0; + int x1; + short x2; + int x3; + short x4; +}; + +struct point413 demo413(struct point413 a) { + return a; +} + +struct point414 { + short x0; + int x1; + short x2; + int x3; + int x4; +}; + +struct point414 demo414(struct point414 a) { + return a; +} + +struct point415 { + short x0; + int x1; + short x2; + int x3; + float x4; +}; + +struct point415 demo415(struct point415 a) { + return a; +} + +struct point416 { + short x0; + int x1; + short x2; + float x3; +}; + +struct point416 demo416(struct point416 a) { + return a; +} + +struct point417 { + short x0; + int x1; + short x2; + float x3; + char x4; +}; + +struct point417 demo417(struct point417 a) { + return a; +} + +struct point418 { + short x0; + int x1; + short x2; + float x3; + short x4; +}; + +struct point418 demo418(struct point418 a) { + return a; +} + +struct point419 { + short x0; + int x1; + short x2; + float x3; + int x4; +}; + +struct point419 demo419(struct point419 a) { + return a; +} + +struct point420 { + short x0; + int x1; + short x2; + float x3; + float x4; +}; + +struct point420 demo420(struct point420 a) { + return a; +} + +struct point421 { + short x0; + int x1; + int x2; +}; + +struct point421 demo421(struct point421 a) { + return a; +} + +struct point422 { + short x0; + int x1; + int x2; + char x3; +}; + +struct point422 demo422(struct point422 a) { + return a; +} + +struct point423 { + short x0; + int x1; + int x2; + char x3; + char x4; +}; + +struct point423 demo423(struct point423 a) { + return a; +} + +struct point424 { + short x0; + int x1; + int x2; + char x3; + short x4; +}; + +struct point424 demo424(struct point424 a) { + return a; +} + +struct point425 { + short x0; + int x1; + int x2; + char x3; + int x4; +}; + +struct point425 demo425(struct point425 a) { + return a; +} + +struct point426 { + short x0; + int x1; + int x2; + char x3; + float x4; +}; + +struct point426 demo426(struct point426 a) { + return a; +} + +struct point427 { + short x0; + int x1; + int x2; + short x3; +}; + +struct point427 demo427(struct point427 a) { + return a; +} + +struct point428 { + short x0; + int x1; + int x2; + short x3; + char x4; +}; + +struct point428 demo428(struct point428 a) { + return a; +} + +struct point429 { + short x0; + int x1; + int x2; + short x3; + short x4; +}; + +struct point429 demo429(struct point429 a) { + return a; +} + +struct point430 { + short x0; + int x1; + int x2; + short x3; + int x4; +}; + +struct point430 demo430(struct point430 a) { + return a; +} + +struct point431 { + short x0; + int x1; + int x2; + short x3; + float x4; +}; + +struct point431 demo431(struct point431 a) { + return a; +} + +struct point432 { + short x0; + int x1; + int x2; + int x3; +}; + +struct point432 demo432(struct point432 a) { + return a; +} + +struct point433 { + short x0; + int x1; + int x2; + int x3; + char x4; +}; + +struct point433 demo433(struct point433 a) { + return a; +} + +struct point434 { + short x0; + int x1; + int x2; + int x3; + short x4; +}; + +struct point434 demo434(struct point434 a) { + return a; +} + +struct point435 { + short x0; + int x1; + int x2; + int x3; + int x4; +}; + +struct point435 demo435(struct point435 a) { + return a; +} + +struct point436 { + short x0; + int x1; + int x2; + int x3; + float x4; +}; + +struct point436 demo436(struct point436 a) { + return a; +} + +struct point437 { + short x0; + int x1; + int x2; + float x3; +}; + +struct point437 demo437(struct point437 a) { + return a; +} + +struct point438 { + short x0; + int x1; + int x2; + float x3; + char x4; +}; + +struct point438 demo438(struct point438 a) { + return a; +} + +struct point439 { + short x0; + int x1; + int x2; + float x3; + short x4; +}; + +struct point439 demo439(struct point439 a) { + return a; +} + +struct point440 { + short x0; + int x1; + int x2; + float x3; + int x4; +}; + +struct point440 demo440(struct point440 a) { + return a; +} + +struct point441 { + short x0; + int x1; + int x2; + float x3; + float x4; +}; + +struct point441 demo441(struct point441 a) { + return a; +} + +struct point442 { + short x0; + int x1; + float x2; +}; + +struct point442 demo442(struct point442 a) { + return a; +} + +struct point443 { + short x0; + int x1; + float x2; + char x3; +}; + +struct point443 demo443(struct point443 a) { + return a; +} + +struct point444 { + short x0; + int x1; + float x2; + char x3; + char x4; +}; + +struct point444 demo444(struct point444 a) { + return a; +} + +struct point445 { + short x0; + int x1; + float x2; + char x3; + short x4; +}; + +struct point445 demo445(struct point445 a) { + return a; +} + +struct point446 { + short x0; + int x1; + float x2; + char x3; + int x4; +}; + +struct point446 demo446(struct point446 a) { + return a; +} + +struct point447 { + short x0; + int x1; + float x2; + char x3; + float x4; +}; + +struct point447 demo447(struct point447 a) { + return a; +} + +struct point448 { + short x0; + int x1; + float x2; + short x3; +}; + +struct point448 demo448(struct point448 a) { + return a; +} + +struct point449 { + short x0; + int x1; + float x2; + short x3; + char x4; +}; + +struct point449 demo449(struct point449 a) { + return a; +} + +struct point450 { + short x0; + int x1; + float x2; + short x3; + short x4; +}; + +struct point450 demo450(struct point450 a) { + return a; +} + +struct point451 { + short x0; + int x1; + float x2; + short x3; + int x4; +}; + +struct point451 demo451(struct point451 a) { + return a; +} + +struct point452 { + short x0; + int x1; + float x2; + short x3; + float x4; +}; + +struct point452 demo452(struct point452 a) { + return a; +} + +struct point453 { + short x0; + int x1; + float x2; + int x3; +}; + +struct point453 demo453(struct point453 a) { + return a; +} + +struct point454 { + short x0; + int x1; + float x2; + int x3; + char x4; +}; + +struct point454 demo454(struct point454 a) { + return a; +} + +struct point455 { + short x0; + int x1; + float x2; + int x3; + short x4; +}; + +struct point455 demo455(struct point455 a) { + return a; +} + +struct point456 { + short x0; + int x1; + float x2; + int x3; + int x4; +}; + +struct point456 demo456(struct point456 a) { + return a; +} + +struct point457 { + short x0; + int x1; + float x2; + int x3; + float x4; +}; + +struct point457 demo457(struct point457 a) { + return a; +} + +struct point458 { + short x0; + int x1; + float x2; + float x3; +}; + +struct point458 demo458(struct point458 a) { + return a; +} + +struct point459 { + short x0; + int x1; + float x2; + float x3; + char x4; +}; + +struct point459 demo459(struct point459 a) { + return a; +} + +struct point460 { + short x0; + int x1; + float x2; + float x3; + short x4; +}; + +struct point460 demo460(struct point460 a) { + return a; +} + +struct point461 { + short x0; + int x1; + float x2; + float x3; + int x4; +}; + +struct point461 demo461(struct point461 a) { + return a; +} + +struct point462 { + short x0; + int x1; + float x2; + float x3; + float x4; +}; + +struct point462 demo462(struct point462 a) { + return a; +} + +struct point463 { + short x0; + float x1; + char x2; +}; + +struct point463 demo463(struct point463 a) { + return a; +} + +struct point464 { + short x0; + float x1; + char x2; + char x3; +}; + +struct point464 demo464(struct point464 a) { + return a; +} + +struct point465 { + short x0; + float x1; + char x2; + char x3; + char x4; +}; + +struct point465 demo465(struct point465 a) { + return a; +} + +struct point466 { + short x0; + float x1; + char x2; + char x3; + short x4; +}; + +struct point466 demo466(struct point466 a) { + return a; +} + +struct point467 { + short x0; + float x1; + char x2; + char x3; + int x4; +}; + +struct point467 demo467(struct point467 a) { + return a; +} + +struct point468 { + short x0; + float x1; + char x2; + char x3; + float x4; +}; + +struct point468 demo468(struct point468 a) { + return a; +} + +struct point469 { + short x0; + float x1; + char x2; + short x3; +}; + +struct point469 demo469(struct point469 a) { + return a; +} + +struct point470 { + short x0; + float x1; + char x2; + short x3; + char x4; +}; + +struct point470 demo470(struct point470 a) { + return a; +} + +struct point471 { + short x0; + float x1; + char x2; + short x3; + short x4; +}; + +struct point471 demo471(struct point471 a) { + return a; +} + +struct point472 { + short x0; + float x1; + char x2; + short x3; + int x4; +}; + +struct point472 demo472(struct point472 a) { + return a; +} + +struct point473 { + short x0; + float x1; + char x2; + short x3; + float x4; +}; + +struct point473 demo473(struct point473 a) { + return a; +} + +struct point474 { + short x0; + float x1; + char x2; + int x3; +}; + +struct point474 demo474(struct point474 a) { + return a; +} + +struct point475 { + short x0; + float x1; + char x2; + int x3; + char x4; +}; + +struct point475 demo475(struct point475 a) { + return a; +} + +struct point476 { + short x0; + float x1; + char x2; + int x3; + short x4; +}; + +struct point476 demo476(struct point476 a) { + return a; +} + +struct point477 { + short x0; + float x1; + char x2; + int x3; + int x4; +}; + +struct point477 demo477(struct point477 a) { + return a; +} + +struct point478 { + short x0; + float x1; + char x2; + int x3; + float x4; +}; + +struct point478 demo478(struct point478 a) { + return a; +} + +struct point479 { + short x0; + float x1; + char x2; + float x3; +}; + +struct point479 demo479(struct point479 a) { + return a; +} + +struct point480 { + short x0; + float x1; + char x2; + float x3; + char x4; +}; + +struct point480 demo480(struct point480 a) { + return a; +} + +struct point481 { + short x0; + float x1; + char x2; + float x3; + short x4; +}; + +struct point481 demo481(struct point481 a) { + return a; +} + +struct point482 { + short x0; + float x1; + char x2; + float x3; + int x4; +}; + +struct point482 demo482(struct point482 a) { + return a; +} + +struct point483 { + short x0; + float x1; + char x2; + float x3; + float x4; +}; + +struct point483 demo483(struct point483 a) { + return a; +} + +struct point484 { + short x0; + float x1; + short x2; +}; + +struct point484 demo484(struct point484 a) { + return a; +} + +struct point485 { + short x0; + float x1; + short x2; + char x3; +}; + +struct point485 demo485(struct point485 a) { + return a; +} + +struct point486 { + short x0; + float x1; + short x2; + char x3; + char x4; +}; + +struct point486 demo486(struct point486 a) { + return a; +} + +struct point487 { + short x0; + float x1; + short x2; + char x3; + short x4; +}; + +struct point487 demo487(struct point487 a) { + return a; +} + +struct point488 { + short x0; + float x1; + short x2; + char x3; + int x4; +}; + +struct point488 demo488(struct point488 a) { + return a; +} + +struct point489 { + short x0; + float x1; + short x2; + char x3; + float x4; +}; + +struct point489 demo489(struct point489 a) { + return a; +} + +struct point490 { + short x0; + float x1; + short x2; + short x3; +}; + +struct point490 demo490(struct point490 a) { + return a; +} + +struct point491 { + short x0; + float x1; + short x2; + short x3; + char x4; +}; + +struct point491 demo491(struct point491 a) { + return a; +} + +struct point492 { + short x0; + float x1; + short x2; + short x3; + short x4; +}; + +struct point492 demo492(struct point492 a) { + return a; +} + +struct point493 { + short x0; + float x1; + short x2; + short x3; + int x4; +}; + +struct point493 demo493(struct point493 a) { + return a; +} + +struct point494 { + short x0; + float x1; + short x2; + short x3; + float x4; +}; + +struct point494 demo494(struct point494 a) { + return a; +} + +struct point495 { + short x0; + float x1; + short x2; + int x3; +}; + +struct point495 demo495(struct point495 a) { + return a; +} + +struct point496 { + short x0; + float x1; + short x2; + int x3; + char x4; +}; + +struct point496 demo496(struct point496 a) { + return a; +} + +struct point497 { + short x0; + float x1; + short x2; + int x3; + short x4; +}; + +struct point497 demo497(struct point497 a) { + return a; +} + +struct point498 { + short x0; + float x1; + short x2; + int x3; + int x4; +}; + +struct point498 demo498(struct point498 a) { + return a; +} + +struct point499 { + short x0; + float x1; + short x2; + int x3; + float x4; +}; + +struct point499 demo499(struct point499 a) { + return a; +} + +struct point500 { + short x0; + float x1; + short x2; + float x3; +}; + +struct point500 demo500(struct point500 a) { + return a; +} + +struct point501 { + short x0; + float x1; + short x2; + float x3; + char x4; +}; + +struct point501 demo501(struct point501 a) { + return a; +} + +struct point502 { + short x0; + float x1; + short x2; + float x3; + short x4; +}; + +struct point502 demo502(struct point502 a) { + return a; +} + +struct point503 { + short x0; + float x1; + short x2; + float x3; + int x4; +}; + +struct point503 demo503(struct point503 a) { + return a; +} + +struct point504 { + short x0; + float x1; + short x2; + float x3; + float x4; +}; + +struct point504 demo504(struct point504 a) { + return a; +} + +struct point505 { + short x0; + float x1; + int x2; +}; + +struct point505 demo505(struct point505 a) { + return a; +} + +struct point506 { + short x0; + float x1; + int x2; + char x3; +}; + +struct point506 demo506(struct point506 a) { + return a; +} + +struct point507 { + short x0; + float x1; + int x2; + char x3; + char x4; +}; + +struct point507 demo507(struct point507 a) { + return a; +} + +struct point508 { + short x0; + float x1; + int x2; + char x3; + short x4; +}; + +struct point508 demo508(struct point508 a) { + return a; +} + +struct point509 { + short x0; + float x1; + int x2; + char x3; + int x4; +}; + +struct point509 demo509(struct point509 a) { + return a; +} + +struct point510 { + short x0; + float x1; + int x2; + char x3; + float x4; +}; + +struct point510 demo510(struct point510 a) { + return a; +} + +struct point511 { + short x0; + float x1; + int x2; + short x3; +}; + +struct point511 demo511(struct point511 a) { + return a; +} + +struct point512 { + short x0; + float x1; + int x2; + short x3; + char x4; +}; + +struct point512 demo512(struct point512 a) { + return a; +} + +struct point513 { + short x0; + float x1; + int x2; + short x3; + short x4; +}; + +struct point513 demo513(struct point513 a) { + return a; +} + +struct point514 { + short x0; + float x1; + int x2; + short x3; + int x4; +}; + +struct point514 demo514(struct point514 a) { + return a; +} + +struct point515 { + short x0; + float x1; + int x2; + short x3; + float x4; +}; + +struct point515 demo515(struct point515 a) { + return a; +} + +struct point516 { + short x0; + float x1; + int x2; + int x3; +}; + +struct point516 demo516(struct point516 a) { + return a; +} + +struct point517 { + short x0; + float x1; + int x2; + int x3; + char x4; +}; + +struct point517 demo517(struct point517 a) { + return a; +} + +struct point518 { + short x0; + float x1; + int x2; + int x3; + short x4; +}; + +struct point518 demo518(struct point518 a) { + return a; +} + +struct point519 { + short x0; + float x1; + int x2; + int x3; + int x4; +}; + +struct point519 demo519(struct point519 a) { + return a; +} + +struct point520 { + short x0; + float x1; + int x2; + int x3; + float x4; +}; + +struct point520 demo520(struct point520 a) { + return a; +} + +struct point521 { + short x0; + float x1; + int x2; + float x3; +}; + +struct point521 demo521(struct point521 a) { + return a; +} + +struct point522 { + short x0; + float x1; + int x2; + float x3; + char x4; +}; + +struct point522 demo522(struct point522 a) { + return a; +} + +struct point523 { + short x0; + float x1; + int x2; + float x3; + short x4; +}; + +struct point523 demo523(struct point523 a) { + return a; +} + +struct point524 { + short x0; + float x1; + int x2; + float x3; + int x4; +}; + +struct point524 demo524(struct point524 a) { + return a; +} + +struct point525 { + short x0; + float x1; + int x2; + float x3; + float x4; +}; + +struct point525 demo525(struct point525 a) { + return a; +} + +struct point526 { + short x0; + float x1; + float x2; +}; + +struct point526 demo526(struct point526 a) { + return a; +} + +struct point527 { + short x0; + float x1; + float x2; + char x3; +}; + +struct point527 demo527(struct point527 a) { + return a; +} + +struct point528 { + short x0; + float x1; + float x2; + char x3; + char x4; +}; + +struct point528 demo528(struct point528 a) { + return a; +} + +struct point529 { + short x0; + float x1; + float x2; + char x3; + short x4; +}; + +struct point529 demo529(struct point529 a) { + return a; +} + +struct point530 { + short x0; + float x1; + float x2; + char x3; + int x4; +}; + +struct point530 demo530(struct point530 a) { + return a; +} + +struct point531 { + short x0; + float x1; + float x2; + char x3; + float x4; +}; + +struct point531 demo531(struct point531 a) { + return a; +} + +struct point532 { + short x0; + float x1; + float x2; + short x3; +}; + +struct point532 demo532(struct point532 a) { + return a; +} + +struct point533 { + short x0; + float x1; + float x2; + short x3; + char x4; +}; + +struct point533 demo533(struct point533 a) { + return a; +} + +struct point534 { + short x0; + float x1; + float x2; + short x3; + short x4; +}; + +struct point534 demo534(struct point534 a) { + return a; +} + +struct point535 { + short x0; + float x1; + float x2; + short x3; + int x4; +}; + +struct point535 demo535(struct point535 a) { + return a; +} + +struct point536 { + short x0; + float x1; + float x2; + short x3; + float x4; +}; + +struct point536 demo536(struct point536 a) { + return a; +} + +struct point537 { + short x0; + float x1; + float x2; + int x3; +}; + +struct point537 demo537(struct point537 a) { + return a; +} + +struct point538 { + short x0; + float x1; + float x2; + int x3; + char x4; +}; + +struct point538 demo538(struct point538 a) { + return a; +} + +struct point539 { + short x0; + float x1; + float x2; + int x3; + short x4; +}; + +struct point539 demo539(struct point539 a) { + return a; +} + +struct point540 { + short x0; + float x1; + float x2; + int x3; + int x4; +}; + +struct point540 demo540(struct point540 a) { + return a; +} + +struct point541 { + short x0; + float x1; + float x2; + int x3; + float x4; +}; + +struct point541 demo541(struct point541 a) { + return a; +} + +struct point542 { + short x0; + float x1; + float x2; + float x3; +}; + +struct point542 demo542(struct point542 a) { + return a; +} + +struct point543 { + short x0; + float x1; + float x2; + float x3; + char x4; +}; + +struct point543 demo543(struct point543 a) { + return a; +} + +struct point544 { + short x0; + float x1; + float x2; + float x3; + short x4; +}; + +struct point544 demo544(struct point544 a) { + return a; +} + +struct point545 { + short x0; + float x1; + float x2; + float x3; + int x4; +}; + +struct point545 demo545(struct point545 a) { + return a; +} + +struct point546 { + short x0; + float x1; + float x2; + float x3; + float x4; +}; + +struct point546 demo546(struct point546 a) { + return a; +} + +struct point547 { + int x0; + char x1; + char x2; +}; + +struct point547 demo547(struct point547 a) { + return a; +} + +struct point548 { + int x0; + char x1; + char x2; + char x3; +}; + +struct point548 demo548(struct point548 a) { + return a; +} + +struct point549 { + int x0; + char x1; + char x2; + char x3; + char x4; +}; + +struct point549 demo549(struct point549 a) { + return a; +} + +struct point550 { + int x0; + char x1; + char x2; + char x3; + short x4; +}; + +struct point550 demo550(struct point550 a) { + return a; +} + +struct point551 { + int x0; + char x1; + char x2; + char x3; + int x4; +}; + +struct point551 demo551(struct point551 a) { + return a; +} + +struct point552 { + int x0; + char x1; + char x2; + char x3; + float x4; +}; + +struct point552 demo552(struct point552 a) { + return a; +} + +struct point553 { + int x0; + char x1; + char x2; + short x3; +}; + +struct point553 demo553(struct point553 a) { + return a; +} + +struct point554 { + int x0; + char x1; + char x2; + short x3; + char x4; +}; + +struct point554 demo554(struct point554 a) { + return a; +} + +struct point555 { + int x0; + char x1; + char x2; + short x3; + short x4; +}; + +struct point555 demo555(struct point555 a) { + return a; +} + +struct point556 { + int x0; + char x1; + char x2; + short x3; + int x4; +}; + +struct point556 demo556(struct point556 a) { + return a; +} + +struct point557 { + int x0; + char x1; + char x2; + short x3; + float x4; +}; + +struct point557 demo557(struct point557 a) { + return a; +} + +struct point558 { + int x0; + char x1; + char x2; + int x3; +}; + +struct point558 demo558(struct point558 a) { + return a; +} + +struct point559 { + int x0; + char x1; + char x2; + int x3; + char x4; +}; + +struct point559 demo559(struct point559 a) { + return a; +} + +struct point560 { + int x0; + char x1; + char x2; + int x3; + short x4; +}; + +struct point560 demo560(struct point560 a) { + return a; +} + +struct point561 { + int x0; + char x1; + char x2; + int x3; + int x4; +}; + +struct point561 demo561(struct point561 a) { + return a; +} + +struct point562 { + int x0; + char x1; + char x2; + int x3; + float x4; +}; + +struct point562 demo562(struct point562 a) { + return a; +} + +struct point563 { + int x0; + char x1; + char x2; + float x3; +}; + +struct point563 demo563(struct point563 a) { + return a; +} + +struct point564 { + int x0; + char x1; + char x2; + float x3; + char x4; +}; + +struct point564 demo564(struct point564 a) { + return a; +} + +struct point565 { + int x0; + char x1; + char x2; + float x3; + short x4; +}; + +struct point565 demo565(struct point565 a) { + return a; +} + +struct point566 { + int x0; + char x1; + char x2; + float x3; + int x4; +}; + +struct point566 demo566(struct point566 a) { + return a; +} + +struct point567 { + int x0; + char x1; + char x2; + float x3; + float x4; +}; + +struct point567 demo567(struct point567 a) { + return a; +} + +struct point568 { + int x0; + char x1; + short x2; +}; + +struct point568 demo568(struct point568 a) { + return a; +} + +struct point569 { + int x0; + char x1; + short x2; + char x3; +}; + +struct point569 demo569(struct point569 a) { + return a; +} + +struct point570 { + int x0; + char x1; + short x2; + char x3; + char x4; +}; + +struct point570 demo570(struct point570 a) { + return a; +} + +struct point571 { + int x0; + char x1; + short x2; + char x3; + short x4; +}; + +struct point571 demo571(struct point571 a) { + return a; +} + +struct point572 { + int x0; + char x1; + short x2; + char x3; + int x4; +}; + +struct point572 demo572(struct point572 a) { + return a; +} + +struct point573 { + int x0; + char x1; + short x2; + char x3; + float x4; +}; + +struct point573 demo573(struct point573 a) { + return a; +} + +struct point574 { + int x0; + char x1; + short x2; + short x3; +}; + +struct point574 demo574(struct point574 a) { + return a; +} + +struct point575 { + int x0; + char x1; + short x2; + short x3; + char x4; +}; + +struct point575 demo575(struct point575 a) { + return a; +} + +struct point576 { + int x0; + char x1; + short x2; + short x3; + short x4; +}; + +struct point576 demo576(struct point576 a) { + return a; +} + +struct point577 { + int x0; + char x1; + short x2; + short x3; + int x4; +}; + +struct point577 demo577(struct point577 a) { + return a; +} + +struct point578 { + int x0; + char x1; + short x2; + short x3; + float x4; +}; + +struct point578 demo578(struct point578 a) { + return a; +} + +struct point579 { + int x0; + char x1; + short x2; + int x3; +}; + +struct point579 demo579(struct point579 a) { + return a; +} + +struct point580 { + int x0; + char x1; + short x2; + int x3; + char x4; +}; + +struct point580 demo580(struct point580 a) { + return a; +} + +struct point581 { + int x0; + char x1; + short x2; + int x3; + short x4; +}; + +struct point581 demo581(struct point581 a) { + return a; +} + +struct point582 { + int x0; + char x1; + short x2; + int x3; + int x4; +}; + +struct point582 demo582(struct point582 a) { + return a; +} + +struct point583 { + int x0; + char x1; + short x2; + int x3; + float x4; +}; + +struct point583 demo583(struct point583 a) { + return a; +} + +struct point584 { + int x0; + char x1; + short x2; + float x3; +}; + +struct point584 demo584(struct point584 a) { + return a; +} + +struct point585 { + int x0; + char x1; + short x2; + float x3; + char x4; +}; + +struct point585 demo585(struct point585 a) { + return a; +} + +struct point586 { + int x0; + char x1; + short x2; + float x3; + short x4; +}; + +struct point586 demo586(struct point586 a) { + return a; +} + +struct point587 { + int x0; + char x1; + short x2; + float x3; + int x4; +}; + +struct point587 demo587(struct point587 a) { + return a; +} + +struct point588 { + int x0; + char x1; + short x2; + float x3; + float x4; +}; + +struct point588 demo588(struct point588 a) { + return a; +} + +struct point589 { + int x0; + char x1; + int x2; +}; + +struct point589 demo589(struct point589 a) { + return a; +} + +struct point590 { + int x0; + char x1; + int x2; + char x3; +}; + +struct point590 demo590(struct point590 a) { + return a; +} + +struct point591 { + int x0; + char x1; + int x2; + char x3; + char x4; +}; + +struct point591 demo591(struct point591 a) { + return a; +} + +struct point592 { + int x0; + char x1; + int x2; + char x3; + short x4; +}; + +struct point592 demo592(struct point592 a) { + return a; +} + +struct point593 { + int x0; + char x1; + int x2; + char x3; + int x4; +}; + +struct point593 demo593(struct point593 a) { + return a; +} + +struct point594 { + int x0; + char x1; + int x2; + char x3; + float x4; +}; + +struct point594 demo594(struct point594 a) { + return a; +} + +struct point595 { + int x0; + char x1; + int x2; + short x3; +}; + +struct point595 demo595(struct point595 a) { + return a; +} + +struct point596 { + int x0; + char x1; + int x2; + short x3; + char x4; +}; + +struct point596 demo596(struct point596 a) { + return a; +} + +struct point597 { + int x0; + char x1; + int x2; + short x3; + short x4; +}; + +struct point597 demo597(struct point597 a) { + return a; +} + +struct point598 { + int x0; + char x1; + int x2; + short x3; + int x4; +}; + +struct point598 demo598(struct point598 a) { + return a; +} + +struct point599 { + int x0; + char x1; + int x2; + short x3; + float x4; +}; + +struct point599 demo599(struct point599 a) { + return a; +} + +struct point600 { + int x0; + char x1; + int x2; + int x3; +}; + +struct point600 demo600(struct point600 a) { + return a; +} + +struct point601 { + int x0; + char x1; + int x2; + int x3; + char x4; +}; + +struct point601 demo601(struct point601 a) { + return a; +} + +struct point602 { + int x0; + char x1; + int x2; + int x3; + short x4; +}; + +struct point602 demo602(struct point602 a) { + return a; +} + +struct point603 { + int x0; + char x1; + int x2; + int x3; + int x4; +}; + +struct point603 demo603(struct point603 a) { + return a; +} + +struct point604 { + int x0; + char x1; + int x2; + int x3; + float x4; +}; + +struct point604 demo604(struct point604 a) { + return a; +} + +struct point605 { + int x0; + char x1; + int x2; + float x3; +}; + +struct point605 demo605(struct point605 a) { + return a; +} + +struct point606 { + int x0; + char x1; + int x2; + float x3; + char x4; +}; + +struct point606 demo606(struct point606 a) { + return a; +} + +struct point607 { + int x0; + char x1; + int x2; + float x3; + short x4; +}; + +struct point607 demo607(struct point607 a) { + return a; +} + +struct point608 { + int x0; + char x1; + int x2; + float x3; + int x4; +}; + +struct point608 demo608(struct point608 a) { + return a; +} + +struct point609 { + int x0; + char x1; + int x2; + float x3; + float x4; +}; + +struct point609 demo609(struct point609 a) { + return a; +} + +struct point610 { + int x0; + char x1; + float x2; +}; + +struct point610 demo610(struct point610 a) { + return a; +} + +struct point611 { + int x0; + char x1; + float x2; + char x3; +}; + +struct point611 demo611(struct point611 a) { + return a; +} + +struct point612 { + int x0; + char x1; + float x2; + char x3; + char x4; +}; + +struct point612 demo612(struct point612 a) { + return a; +} + +struct point613 { + int x0; + char x1; + float x2; + char x3; + short x4; +}; + +struct point613 demo613(struct point613 a) { + return a; +} + +struct point614 { + int x0; + char x1; + float x2; + char x3; + int x4; +}; + +struct point614 demo614(struct point614 a) { + return a; +} + +struct point615 { + int x0; + char x1; + float x2; + char x3; + float x4; +}; + +struct point615 demo615(struct point615 a) { + return a; +} + +struct point616 { + int x0; + char x1; + float x2; + short x3; +}; + +struct point616 demo616(struct point616 a) { + return a; +} + +struct point617 { + int x0; + char x1; + float x2; + short x3; + char x4; +}; + +struct point617 demo617(struct point617 a) { + return a; +} + +struct point618 { + int x0; + char x1; + float x2; + short x3; + short x4; +}; + +struct point618 demo618(struct point618 a) { + return a; +} + +struct point619 { + int x0; + char x1; + float x2; + short x3; + int x4; +}; + +struct point619 demo619(struct point619 a) { + return a; +} + +struct point620 { + int x0; + char x1; + float x2; + short x3; + float x4; +}; + +struct point620 demo620(struct point620 a) { + return a; +} + +struct point621 { + int x0; + char x1; + float x2; + int x3; +}; + +struct point621 demo621(struct point621 a) { + return a; +} + +struct point622 { + int x0; + char x1; + float x2; + int x3; + char x4; +}; + +struct point622 demo622(struct point622 a) { + return a; +} + +struct point623 { + int x0; + char x1; + float x2; + int x3; + short x4; +}; + +struct point623 demo623(struct point623 a) { + return a; +} + +struct point624 { + int x0; + char x1; + float x2; + int x3; + int x4; +}; + +struct point624 demo624(struct point624 a) { + return a; +} + +struct point625 { + int x0; + char x1; + float x2; + int x3; + float x4; +}; + +struct point625 demo625(struct point625 a) { + return a; +} + +struct point626 { + int x0; + char x1; + float x2; + float x3; +}; + +struct point626 demo626(struct point626 a) { + return a; +} + +struct point627 { + int x0; + char x1; + float x2; + float x3; + char x4; +}; + +struct point627 demo627(struct point627 a) { + return a; +} + +struct point628 { + int x0; + char x1; + float x2; + float x3; + short x4; +}; + +struct point628 demo628(struct point628 a) { + return a; +} + +struct point629 { + int x0; + char x1; + float x2; + float x3; + int x4; +}; + +struct point629 demo629(struct point629 a) { + return a; +} + +struct point630 { + int x0; + char x1; + float x2; + float x3; + float x4; +}; + +struct point630 demo630(struct point630 a) { + return a; +} + +struct point631 { + int x0; + short x1; + char x2; +}; + +struct point631 demo631(struct point631 a) { + return a; +} + +struct point632 { + int x0; + short x1; + char x2; + char x3; +}; + +struct point632 demo632(struct point632 a) { + return a; +} + +struct point633 { + int x0; + short x1; + char x2; + char x3; + char x4; +}; + +struct point633 demo633(struct point633 a) { + return a; +} + +struct point634 { + int x0; + short x1; + char x2; + char x3; + short x4; +}; + +struct point634 demo634(struct point634 a) { + return a; +} + +struct point635 { + int x0; + short x1; + char x2; + char x3; + int x4; +}; + +struct point635 demo635(struct point635 a) { + return a; +} + +struct point636 { + int x0; + short x1; + char x2; + char x3; + float x4; +}; + +struct point636 demo636(struct point636 a) { + return a; +} + +struct point637 { + int x0; + short x1; + char x2; + short x3; +}; + +struct point637 demo637(struct point637 a) { + return a; +} + +struct point638 { + int x0; + short x1; + char x2; + short x3; + char x4; +}; + +struct point638 demo638(struct point638 a) { + return a; +} + +struct point639 { + int x0; + short x1; + char x2; + short x3; + short x4; +}; + +struct point639 demo639(struct point639 a) { + return a; +} + +struct point640 { + int x0; + short x1; + char x2; + short x3; + int x4; +}; + +struct point640 demo640(struct point640 a) { + return a; +} + +struct point641 { + int x0; + short x1; + char x2; + short x3; + float x4; +}; + +struct point641 demo641(struct point641 a) { + return a; +} + +struct point642 { + int x0; + short x1; + char x2; + int x3; +}; + +struct point642 demo642(struct point642 a) { + return a; +} + +struct point643 { + int x0; + short x1; + char x2; + int x3; + char x4; +}; + +struct point643 demo643(struct point643 a) { + return a; +} + +struct point644 { + int x0; + short x1; + char x2; + int x3; + short x4; +}; + +struct point644 demo644(struct point644 a) { + return a; +} + +struct point645 { + int x0; + short x1; + char x2; + int x3; + int x4; +}; + +struct point645 demo645(struct point645 a) { + return a; +} + +struct point646 { + int x0; + short x1; + char x2; + int x3; + float x4; +}; + +struct point646 demo646(struct point646 a) { + return a; +} + +struct point647 { + int x0; + short x1; + char x2; + float x3; +}; + +struct point647 demo647(struct point647 a) { + return a; +} + +struct point648 { + int x0; + short x1; + char x2; + float x3; + char x4; +}; + +struct point648 demo648(struct point648 a) { + return a; +} + +struct point649 { + int x0; + short x1; + char x2; + float x3; + short x4; +}; + +struct point649 demo649(struct point649 a) { + return a; +} + +struct point650 { + int x0; + short x1; + char x2; + float x3; + int x4; +}; + +struct point650 demo650(struct point650 a) { + return a; +} + +struct point651 { + int x0; + short x1; + char x2; + float x3; + float x4; +}; + +struct point651 demo651(struct point651 a) { + return a; +} + +struct point652 { + int x0; + short x1; + short x2; +}; + +struct point652 demo652(struct point652 a) { + return a; +} + +struct point653 { + int x0; + short x1; + short x2; + char x3; +}; + +struct point653 demo653(struct point653 a) { + return a; +} + +struct point654 { + int x0; + short x1; + short x2; + char x3; + char x4; +}; + +struct point654 demo654(struct point654 a) { + return a; +} + +struct point655 { + int x0; + short x1; + short x2; + char x3; + short x4; +}; + +struct point655 demo655(struct point655 a) { + return a; +} + +struct point656 { + int x0; + short x1; + short x2; + char x3; + int x4; +}; + +struct point656 demo656(struct point656 a) { + return a; +} + +struct point657 { + int x0; + short x1; + short x2; + char x3; + float x4; +}; + +struct point657 demo657(struct point657 a) { + return a; +} + +struct point658 { + int x0; + short x1; + short x2; + short x3; +}; + +struct point658 demo658(struct point658 a) { + return a; +} + +struct point659 { + int x0; + short x1; + short x2; + short x3; + char x4; +}; + +struct point659 demo659(struct point659 a) { + return a; +} + +struct point660 { + int x0; + short x1; + short x2; + short x3; + short x4; +}; + +struct point660 demo660(struct point660 a) { + return a; +} + +struct point661 { + int x0; + short x1; + short x2; + short x3; + int x4; +}; + +struct point661 demo661(struct point661 a) { + return a; +} + +struct point662 { + int x0; + short x1; + short x2; + short x3; + float x4; +}; + +struct point662 demo662(struct point662 a) { + return a; +} + +struct point663 { + int x0; + short x1; + short x2; + int x3; +}; + +struct point663 demo663(struct point663 a) { + return a; +} + +struct point664 { + int x0; + short x1; + short x2; + int x3; + char x4; +}; + +struct point664 demo664(struct point664 a) { + return a; +} + +struct point665 { + int x0; + short x1; + short x2; + int x3; + short x4; +}; + +struct point665 demo665(struct point665 a) { + return a; +} + +struct point666 { + int x0; + short x1; + short x2; + int x3; + int x4; +}; + +struct point666 demo666(struct point666 a) { + return a; +} + +struct point667 { + int x0; + short x1; + short x2; + int x3; + float x4; +}; + +struct point667 demo667(struct point667 a) { + return a; +} + +struct point668 { + int x0; + short x1; + short x2; + float x3; +}; + +struct point668 demo668(struct point668 a) { + return a; +} + +struct point669 { + int x0; + short x1; + short x2; + float x3; + char x4; +}; + +struct point669 demo669(struct point669 a) { + return a; +} + +struct point670 { + int x0; + short x1; + short x2; + float x3; + short x4; +}; + +struct point670 demo670(struct point670 a) { + return a; +} + +struct point671 { + int x0; + short x1; + short x2; + float x3; + int x4; +}; + +struct point671 demo671(struct point671 a) { + return a; +} + +struct point672 { + int x0; + short x1; + short x2; + float x3; + float x4; +}; + +struct point672 demo672(struct point672 a) { + return a; +} + +struct point673 { + int x0; + short x1; + int x2; +}; + +struct point673 demo673(struct point673 a) { + return a; +} + +struct point674 { + int x0; + short x1; + int x2; + char x3; +}; + +struct point674 demo674(struct point674 a) { + return a; +} + +struct point675 { + int x0; + short x1; + int x2; + char x3; + char x4; +}; + +struct point675 demo675(struct point675 a) { + return a; +} + +struct point676 { + int x0; + short x1; + int x2; + char x3; + short x4; +}; + +struct point676 demo676(struct point676 a) { + return a; +} + +struct point677 { + int x0; + short x1; + int x2; + char x3; + int x4; +}; + +struct point677 demo677(struct point677 a) { + return a; +} + +struct point678 { + int x0; + short x1; + int x2; + char x3; + float x4; +}; + +struct point678 demo678(struct point678 a) { + return a; +} + +struct point679 { + int x0; + short x1; + int x2; + short x3; +}; + +struct point679 demo679(struct point679 a) { + return a; +} + +struct point680 { + int x0; + short x1; + int x2; + short x3; + char x4; +}; + +struct point680 demo680(struct point680 a) { + return a; +} + +struct point681 { + int x0; + short x1; + int x2; + short x3; + short x4; +}; + +struct point681 demo681(struct point681 a) { + return a; +} + +struct point682 { + int x0; + short x1; + int x2; + short x3; + int x4; +}; + +struct point682 demo682(struct point682 a) { + return a; +} + +struct point683 { + int x0; + short x1; + int x2; + short x3; + float x4; +}; + +struct point683 demo683(struct point683 a) { + return a; +} + +struct point684 { + int x0; + short x1; + int x2; + int x3; +}; + +struct point684 demo684(struct point684 a) { + return a; +} + +struct point685 { + int x0; + short x1; + int x2; + int x3; + char x4; +}; + +struct point685 demo685(struct point685 a) { + return a; +} + +struct point686 { + int x0; + short x1; + int x2; + int x3; + short x4; +}; + +struct point686 demo686(struct point686 a) { + return a; +} + +struct point687 { + int x0; + short x1; + int x2; + int x3; + int x4; +}; + +struct point687 demo687(struct point687 a) { + return a; +} + +struct point688 { + int x0; + short x1; + int x2; + int x3; + float x4; +}; + +struct point688 demo688(struct point688 a) { + return a; +} + +struct point689 { + int x0; + short x1; + int x2; + float x3; +}; + +struct point689 demo689(struct point689 a) { + return a; +} + +struct point690 { + int x0; + short x1; + int x2; + float x3; + char x4; +}; + +struct point690 demo690(struct point690 a) { + return a; +} + +struct point691 { + int x0; + short x1; + int x2; + float x3; + short x4; +}; + +struct point691 demo691(struct point691 a) { + return a; +} + +struct point692 { + int x0; + short x1; + int x2; + float x3; + int x4; +}; + +struct point692 demo692(struct point692 a) { + return a; +} + +struct point693 { + int x0; + short x1; + int x2; + float x3; + float x4; +}; + +struct point693 demo693(struct point693 a) { + return a; +} + +struct point694 { + int x0; + short x1; + float x2; +}; + +struct point694 demo694(struct point694 a) { + return a; +} + +struct point695 { + int x0; + short x1; + float x2; + char x3; +}; + +struct point695 demo695(struct point695 a) { + return a; +} + +struct point696 { + int x0; + short x1; + float x2; + char x3; + char x4; +}; + +struct point696 demo696(struct point696 a) { + return a; +} + +struct point697 { + int x0; + short x1; + float x2; + char x3; + short x4; +}; + +struct point697 demo697(struct point697 a) { + return a; +} + +struct point698 { + int x0; + short x1; + float x2; + char x3; + int x4; +}; + +struct point698 demo698(struct point698 a) { + return a; +} + +struct point699 { + int x0; + short x1; + float x2; + char x3; + float x4; +}; + +struct point699 demo699(struct point699 a) { + return a; +} + +struct point700 { + int x0; + short x1; + float x2; + short x3; +}; + +struct point700 demo700(struct point700 a) { + return a; +} + +struct point701 { + int x0; + short x1; + float x2; + short x3; + char x4; +}; + +struct point701 demo701(struct point701 a) { + return a; +} + +struct point702 { + int x0; + short x1; + float x2; + short x3; + short x4; +}; + +struct point702 demo702(struct point702 a) { + return a; +} + +struct point703 { + int x0; + short x1; + float x2; + short x3; + int x4; +}; + +struct point703 demo703(struct point703 a) { + return a; +} + +struct point704 { + int x0; + short x1; + float x2; + short x3; + float x4; +}; + +struct point704 demo704(struct point704 a) { + return a; +} + +struct point705 { + int x0; + short x1; + float x2; + int x3; +}; + +struct point705 demo705(struct point705 a) { + return a; +} + +struct point706 { + int x0; + short x1; + float x2; + int x3; + char x4; +}; + +struct point706 demo706(struct point706 a) { + return a; +} + +struct point707 { + int x0; + short x1; + float x2; + int x3; + short x4; +}; + +struct point707 demo707(struct point707 a) { + return a; +} + +struct point708 { + int x0; + short x1; + float x2; + int x3; + int x4; +}; + +struct point708 demo708(struct point708 a) { + return a; +} + +struct point709 { + int x0; + short x1; + float x2; + int x3; + float x4; +}; + +struct point709 demo709(struct point709 a) { + return a; +} + +struct point710 { + int x0; + short x1; + float x2; + float x3; +}; + +struct point710 demo710(struct point710 a) { + return a; +} + +struct point711 { + int x0; + short x1; + float x2; + float x3; + char x4; +}; + +struct point711 demo711(struct point711 a) { + return a; +} + +struct point712 { + int x0; + short x1; + float x2; + float x3; + short x4; +}; + +struct point712 demo712(struct point712 a) { + return a; +} + +struct point713 { + int x0; + short x1; + float x2; + float x3; + int x4; +}; + +struct point713 demo713(struct point713 a) { + return a; +} + +struct point714 { + int x0; + short x1; + float x2; + float x3; + float x4; +}; + +struct point714 demo714(struct point714 a) { + return a; +} + +struct point715 { + int x0; + float x1; + char x2; +}; + +struct point715 demo715(struct point715 a) { + return a; +} + +struct point716 { + int x0; + float x1; + char x2; + char x3; +}; + +struct point716 demo716(struct point716 a) { + return a; +} + +struct point717 { + int x0; + float x1; + char x2; + char x3; + char x4; +}; + +struct point717 demo717(struct point717 a) { + return a; +} + +struct point718 { + int x0; + float x1; + char x2; + char x3; + short x4; +}; + +struct point718 demo718(struct point718 a) { + return a; +} + +struct point719 { + int x0; + float x1; + char x2; + char x3; + int x4; +}; + +struct point719 demo719(struct point719 a) { + return a; +} + +struct point720 { + int x0; + float x1; + char x2; + char x3; + float x4; +}; + +struct point720 demo720(struct point720 a) { + return a; +} + +struct point721 { + int x0; + float x1; + char x2; + short x3; +}; + +struct point721 demo721(struct point721 a) { + return a; +} + +struct point722 { + int x0; + float x1; + char x2; + short x3; + char x4; +}; + +struct point722 demo722(struct point722 a) { + return a; +} + +struct point723 { + int x0; + float x1; + char x2; + short x3; + short x4; +}; + +struct point723 demo723(struct point723 a) { + return a; +} + +struct point724 { + int x0; + float x1; + char x2; + short x3; + int x4; +}; + +struct point724 demo724(struct point724 a) { + return a; +} + +struct point725 { + int x0; + float x1; + char x2; + short x3; + float x4; +}; + +struct point725 demo725(struct point725 a) { + return a; +} + +struct point726 { + int x0; + float x1; + char x2; + int x3; +}; + +struct point726 demo726(struct point726 a) { + return a; +} + +struct point727 { + int x0; + float x1; + char x2; + int x3; + char x4; +}; + +struct point727 demo727(struct point727 a) { + return a; +} + +struct point728 { + int x0; + float x1; + char x2; + int x3; + short x4; +}; + +struct point728 demo728(struct point728 a) { + return a; +} + +struct point729 { + int x0; + float x1; + char x2; + int x3; + int x4; +}; + +struct point729 demo729(struct point729 a) { + return a; +} + +struct point730 { + int x0; + float x1; + char x2; + int x3; + float x4; +}; + +struct point730 demo730(struct point730 a) { + return a; +} + +struct point731 { + int x0; + float x1; + char x2; + float x3; +}; + +struct point731 demo731(struct point731 a) { + return a; +} + +struct point732 { + int x0; + float x1; + char x2; + float x3; + char x4; +}; + +struct point732 demo732(struct point732 a) { + return a; +} + +struct point733 { + int x0; + float x1; + char x2; + float x3; + short x4; +}; + +struct point733 demo733(struct point733 a) { + return a; +} + +struct point734 { + int x0; + float x1; + char x2; + float x3; + int x4; +}; + +struct point734 demo734(struct point734 a) { + return a; +} + +struct point735 { + int x0; + float x1; + char x2; + float x3; + float x4; +}; + +struct point735 demo735(struct point735 a) { + return a; +} + +struct point736 { + int x0; + float x1; + short x2; +}; + +struct point736 demo736(struct point736 a) { + return a; +} + +struct point737 { + int x0; + float x1; + short x2; + char x3; +}; + +struct point737 demo737(struct point737 a) { + return a; +} + +struct point738 { + int x0; + float x1; + short x2; + char x3; + char x4; +}; + +struct point738 demo738(struct point738 a) { + return a; +} + +struct point739 { + int x0; + float x1; + short x2; + char x3; + short x4; +}; + +struct point739 demo739(struct point739 a) { + return a; +} + +struct point740 { + int x0; + float x1; + short x2; + char x3; + int x4; +}; + +struct point740 demo740(struct point740 a) { + return a; +} + +struct point741 { + int x0; + float x1; + short x2; + char x3; + float x4; +}; + +struct point741 demo741(struct point741 a) { + return a; +} + +struct point742 { + int x0; + float x1; + short x2; + short x3; +}; + +struct point742 demo742(struct point742 a) { + return a; +} + +struct point743 { + int x0; + float x1; + short x2; + short x3; + char x4; +}; + +struct point743 demo743(struct point743 a) { + return a; +} + +struct point744 { + int x0; + float x1; + short x2; + short x3; + short x4; +}; + +struct point744 demo744(struct point744 a) { + return a; +} + +struct point745 { + int x0; + float x1; + short x2; + short x3; + int x4; +}; + +struct point745 demo745(struct point745 a) { + return a; +} + +struct point746 { + int x0; + float x1; + short x2; + short x3; + float x4; +}; + +struct point746 demo746(struct point746 a) { + return a; +} + +struct point747 { + int x0; + float x1; + short x2; + int x3; +}; + +struct point747 demo747(struct point747 a) { + return a; +} + +struct point748 { + int x0; + float x1; + short x2; + int x3; + char x4; +}; + +struct point748 demo748(struct point748 a) { + return a; +} + +struct point749 { + int x0; + float x1; + short x2; + int x3; + short x4; +}; + +struct point749 demo749(struct point749 a) { + return a; +} + +struct point750 { + int x0; + float x1; + short x2; + int x3; + int x4; +}; + +struct point750 demo750(struct point750 a) { + return a; +} + +struct point751 { + int x0; + float x1; + short x2; + int x3; + float x4; +}; + +struct point751 demo751(struct point751 a) { + return a; +} + +struct point752 { + int x0; + float x1; + short x2; + float x3; +}; + +struct point752 demo752(struct point752 a) { + return a; +} + +struct point753 { + int x0; + float x1; + short x2; + float x3; + char x4; +}; + +struct point753 demo753(struct point753 a) { + return a; +} + +struct point754 { + int x0; + float x1; + short x2; + float x3; + short x4; +}; + +struct point754 demo754(struct point754 a) { + return a; +} + +struct point755 { + int x0; + float x1; + short x2; + float x3; + int x4; +}; + +struct point755 demo755(struct point755 a) { + return a; +} + +struct point756 { + int x0; + float x1; + short x2; + float x3; + float x4; +}; + +struct point756 demo756(struct point756 a) { + return a; +} + +struct point757 { + int x0; + float x1; + int x2; +}; + +struct point757 demo757(struct point757 a) { + return a; +} + +struct point758 { + int x0; + float x1; + int x2; + char x3; +}; + +struct point758 demo758(struct point758 a) { + return a; +} + +struct point759 { + int x0; + float x1; + int x2; + char x3; + char x4; +}; + +struct point759 demo759(struct point759 a) { + return a; +} + +struct point760 { + int x0; + float x1; + int x2; + char x3; + short x4; +}; + +struct point760 demo760(struct point760 a) { + return a; +} + +struct point761 { + int x0; + float x1; + int x2; + char x3; + int x4; +}; + +struct point761 demo761(struct point761 a) { + return a; +} + +struct point762 { + int x0; + float x1; + int x2; + char x3; + float x4; +}; + +struct point762 demo762(struct point762 a) { + return a; +} + +struct point763 { + int x0; + float x1; + int x2; + short x3; +}; + +struct point763 demo763(struct point763 a) { + return a; +} + +struct point764 { + int x0; + float x1; + int x2; + short x3; + char x4; +}; + +struct point764 demo764(struct point764 a) { + return a; +} + +struct point765 { + int x0; + float x1; + int x2; + short x3; + short x4; +}; + +struct point765 demo765(struct point765 a) { + return a; +} + +struct point766 { + int x0; + float x1; + int x2; + short x3; + int x4; +}; + +struct point766 demo766(struct point766 a) { + return a; +} + +struct point767 { + int x0; + float x1; + int x2; + short x3; + float x4; +}; + +struct point767 demo767(struct point767 a) { + return a; +} + +struct point768 { + int x0; + float x1; + int x2; + int x3; +}; + +struct point768 demo768(struct point768 a) { + return a; +} + +struct point769 { + int x0; + float x1; + int x2; + int x3; + char x4; +}; + +struct point769 demo769(struct point769 a) { + return a; +} + +struct point770 { + int x0; + float x1; + int x2; + int x3; + short x4; +}; + +struct point770 demo770(struct point770 a) { + return a; +} + +struct point771 { + int x0; + float x1; + int x2; + int x3; + int x4; +}; + +struct point771 demo771(struct point771 a) { + return a; +} + +struct point772 { + int x0; + float x1; + int x2; + int x3; + float x4; +}; + +struct point772 demo772(struct point772 a) { + return a; +} + +struct point773 { + int x0; + float x1; + int x2; + float x3; +}; + +struct point773 demo773(struct point773 a) { + return a; +} + +struct point774 { + int x0; + float x1; + int x2; + float x3; + char x4; +}; + +struct point774 demo774(struct point774 a) { + return a; +} + +struct point775 { + int x0; + float x1; + int x2; + float x3; + short x4; +}; + +struct point775 demo775(struct point775 a) { + return a; +} + +struct point776 { + int x0; + float x1; + int x2; + float x3; + int x4; +}; + +struct point776 demo776(struct point776 a) { + return a; +} + +struct point777 { + int x0; + float x1; + int x2; + float x3; + float x4; +}; + +struct point777 demo777(struct point777 a) { + return a; +} + +struct point778 { + int x0; + float x1; + float x2; +}; + +struct point778 demo778(struct point778 a) { + return a; +} + +struct point779 { + int x0; + float x1; + float x2; + char x3; +}; + +struct point779 demo779(struct point779 a) { + return a; +} + +struct point780 { + int x0; + float x1; + float x2; + char x3; + char x4; +}; + +struct point780 demo780(struct point780 a) { + return a; +} + +struct point781 { + int x0; + float x1; + float x2; + char x3; + short x4; +}; + +struct point781 demo781(struct point781 a) { + return a; +} + +struct point782 { + int x0; + float x1; + float x2; + char x3; + int x4; +}; + +struct point782 demo782(struct point782 a) { + return a; +} + +struct point783 { + int x0; + float x1; + float x2; + char x3; + float x4; +}; + +struct point783 demo783(struct point783 a) { + return a; +} + +struct point784 { + int x0; + float x1; + float x2; + short x3; +}; + +struct point784 demo784(struct point784 a) { + return a; +} + +struct point785 { + int x0; + float x1; + float x2; + short x3; + char x4; +}; + +struct point785 demo785(struct point785 a) { + return a; +} + +struct point786 { + int x0; + float x1; + float x2; + short x3; + short x4; +}; + +struct point786 demo786(struct point786 a) { + return a; +} + +struct point787 { + int x0; + float x1; + float x2; + short x3; + int x4; +}; + +struct point787 demo787(struct point787 a) { + return a; +} + +struct point788 { + int x0; + float x1; + float x2; + short x3; + float x4; +}; + +struct point788 demo788(struct point788 a) { + return a; +} + +struct point789 { + int x0; + float x1; + float x2; + int x3; +}; + +struct point789 demo789(struct point789 a) { + return a; +} + +struct point790 { + int x0; + float x1; + float x2; + int x3; + char x4; +}; + +struct point790 demo790(struct point790 a) { + return a; +} + +struct point791 { + int x0; + float x1; + float x2; + int x3; + short x4; +}; + +struct point791 demo791(struct point791 a) { + return a; +} + +struct point792 { + int x0; + float x1; + float x2; + int x3; + int x4; +}; + +struct point792 demo792(struct point792 a) { + return a; +} + +struct point793 { + int x0; + float x1; + float x2; + int x3; + float x4; +}; + +struct point793 demo793(struct point793 a) { + return a; +} + +struct point794 { + int x0; + float x1; + float x2; + float x3; +}; + +struct point794 demo794(struct point794 a) { + return a; +} + +struct point795 { + int x0; + float x1; + float x2; + float x3; + char x4; +}; + +struct point795 demo795(struct point795 a) { + return a; +} + +struct point796 { + int x0; + float x1; + float x2; + float x3; + short x4; +}; + +struct point796 demo796(struct point796 a) { + return a; +} + +struct point797 { + int x0; + float x1; + float x2; + float x3; + int x4; +}; + +struct point797 demo797(struct point797 a) { + return a; +} + +struct point798 { + int x0; + float x1; + float x2; + float x3; + float x4; +}; + +struct point798 demo798(struct point798 a) { + return a; +} + +struct point799 { + float x0; + char x1; + char x2; +}; + +struct point799 demo799(struct point799 a) { + return a; +} + +struct point800 { + float x0; + char x1; + char x2; + char x3; +}; + +struct point800 demo800(struct point800 a) { + return a; +} + +struct point801 { + float x0; + char x1; + char x2; + char x3; + char x4; +}; + +struct point801 demo801(struct point801 a) { + return a; +} + +struct point802 { + float x0; + char x1; + char x2; + char x3; + short x4; +}; + +struct point802 demo802(struct point802 a) { + return a; +} + +struct point803 { + float x0; + char x1; + char x2; + char x3; + int x4; +}; + +struct point803 demo803(struct point803 a) { + return a; +} + +struct point804 { + float x0; + char x1; + char x2; + char x3; + float x4; +}; + +struct point804 demo804(struct point804 a) { + return a; +} + +struct point805 { + float x0; + char x1; + char x2; + short x3; +}; + +struct point805 demo805(struct point805 a) { + return a; +} + +struct point806 { + float x0; + char x1; + char x2; + short x3; + char x4; +}; + +struct point806 demo806(struct point806 a) { + return a; +} + +struct point807 { + float x0; + char x1; + char x2; + short x3; + short x4; +}; + +struct point807 demo807(struct point807 a) { + return a; +} + +struct point808 { + float x0; + char x1; + char x2; + short x3; + int x4; +}; + +struct point808 demo808(struct point808 a) { + return a; +} + +struct point809 { + float x0; + char x1; + char x2; + short x3; + float x4; +}; + +struct point809 demo809(struct point809 a) { + return a; +} + +struct point810 { + float x0; + char x1; + char x2; + int x3; +}; + +struct point810 demo810(struct point810 a) { + return a; +} + +struct point811 { + float x0; + char x1; + char x2; + int x3; + char x4; +}; + +struct point811 demo811(struct point811 a) { + return a; +} + +struct point812 { + float x0; + char x1; + char x2; + int x3; + short x4; +}; + +struct point812 demo812(struct point812 a) { + return a; +} + +struct point813 { + float x0; + char x1; + char x2; + int x3; + int x4; +}; + +struct point813 demo813(struct point813 a) { + return a; +} + +struct point814 { + float x0; + char x1; + char x2; + int x3; + float x4; +}; + +struct point814 demo814(struct point814 a) { + return a; +} + +struct point815 { + float x0; + char x1; + char x2; + float x3; +}; + +struct point815 demo815(struct point815 a) { + return a; +} + +struct point816 { + float x0; + char x1; + char x2; + float x3; + char x4; +}; + +struct point816 demo816(struct point816 a) { + return a; +} + +struct point817 { + float x0; + char x1; + char x2; + float x3; + short x4; +}; + +struct point817 demo817(struct point817 a) { + return a; +} + +struct point818 { + float x0; + char x1; + char x2; + float x3; + int x4; +}; + +struct point818 demo818(struct point818 a) { + return a; +} + +struct point819 { + float x0; + char x1; + char x2; + float x3; + float x4; +}; + +struct point819 demo819(struct point819 a) { + return a; +} + +struct point820 { + float x0; + char x1; + short x2; +}; + +struct point820 demo820(struct point820 a) { + return a; +} + +struct point821 { + float x0; + char x1; + short x2; + char x3; +}; + +struct point821 demo821(struct point821 a) { + return a; +} + +struct point822 { + float x0; + char x1; + short x2; + char x3; + char x4; +}; + +struct point822 demo822(struct point822 a) { + return a; +} + +struct point823 { + float x0; + char x1; + short x2; + char x3; + short x4; +}; + +struct point823 demo823(struct point823 a) { + return a; +} + +struct point824 { + float x0; + char x1; + short x2; + char x3; + int x4; +}; + +struct point824 demo824(struct point824 a) { + return a; +} + +struct point825 { + float x0; + char x1; + short x2; + char x3; + float x4; +}; + +struct point825 demo825(struct point825 a) { + return a; +} + +struct point826 { + float x0; + char x1; + short x2; + short x3; +}; + +struct point826 demo826(struct point826 a) { + return a; +} + +struct point827 { + float x0; + char x1; + short x2; + short x3; + char x4; +}; + +struct point827 demo827(struct point827 a) { + return a; +} + +struct point828 { + float x0; + char x1; + short x2; + short x3; + short x4; +}; + +struct point828 demo828(struct point828 a) { + return a; +} + +struct point829 { + float x0; + char x1; + short x2; + short x3; + int x4; +}; + +struct point829 demo829(struct point829 a) { + return a; +} + +struct point830 { + float x0; + char x1; + short x2; + short x3; + float x4; +}; + +struct point830 demo830(struct point830 a) { + return a; +} + +struct point831 { + float x0; + char x1; + short x2; + int x3; +}; + +struct point831 demo831(struct point831 a) { + return a; +} + +struct point832 { + float x0; + char x1; + short x2; + int x3; + char x4; +}; + +struct point832 demo832(struct point832 a) { + return a; +} + +struct point833 { + float x0; + char x1; + short x2; + int x3; + short x4; +}; + +struct point833 demo833(struct point833 a) { + return a; +} + +struct point834 { + float x0; + char x1; + short x2; + int x3; + int x4; +}; + +struct point834 demo834(struct point834 a) { + return a; +} + +struct point835 { + float x0; + char x1; + short x2; + int x3; + float x4; +}; + +struct point835 demo835(struct point835 a) { + return a; +} + +struct point836 { + float x0; + char x1; + short x2; + float x3; +}; + +struct point836 demo836(struct point836 a) { + return a; +} + +struct point837 { + float x0; + char x1; + short x2; + float x3; + char x4; +}; + +struct point837 demo837(struct point837 a) { + return a; +} + +struct point838 { + float x0; + char x1; + short x2; + float x3; + short x4; +}; + +struct point838 demo838(struct point838 a) { + return a; +} + +struct point839 { + float x0; + char x1; + short x2; + float x3; + int x4; +}; + +struct point839 demo839(struct point839 a) { + return a; +} + +struct point840 { + float x0; + char x1; + short x2; + float x3; + float x4; +}; + +struct point840 demo840(struct point840 a) { + return a; +} + +struct point841 { + float x0; + char x1; + int x2; +}; + +struct point841 demo841(struct point841 a) { + return a; +} + +struct point842 { + float x0; + char x1; + int x2; + char x3; +}; + +struct point842 demo842(struct point842 a) { + return a; +} + +struct point843 { + float x0; + char x1; + int x2; + char x3; + char x4; +}; + +struct point843 demo843(struct point843 a) { + return a; +} + +struct point844 { + float x0; + char x1; + int x2; + char x3; + short x4; +}; + +struct point844 demo844(struct point844 a) { + return a; +} + +struct point845 { + float x0; + char x1; + int x2; + char x3; + int x4; +}; + +struct point845 demo845(struct point845 a) { + return a; +} + +struct point846 { + float x0; + char x1; + int x2; + char x3; + float x4; +}; + +struct point846 demo846(struct point846 a) { + return a; +} + +struct point847 { + float x0; + char x1; + int x2; + short x3; +}; + +struct point847 demo847(struct point847 a) { + return a; +} + +struct point848 { + float x0; + char x1; + int x2; + short x3; + char x4; +}; + +struct point848 demo848(struct point848 a) { + return a; +} + +struct point849 { + float x0; + char x1; + int x2; + short x3; + short x4; +}; + +struct point849 demo849(struct point849 a) { + return a; +} + +struct point850 { + float x0; + char x1; + int x2; + short x3; + int x4; +}; + +struct point850 demo850(struct point850 a) { + return a; +} + +struct point851 { + float x0; + char x1; + int x2; + short x3; + float x4; +}; + +struct point851 demo851(struct point851 a) { + return a; +} + +struct point852 { + float x0; + char x1; + int x2; + int x3; +}; + +struct point852 demo852(struct point852 a) { + return a; +} + +struct point853 { + float x0; + char x1; + int x2; + int x3; + char x4; +}; + +struct point853 demo853(struct point853 a) { + return a; +} + +struct point854 { + float x0; + char x1; + int x2; + int x3; + short x4; +}; + +struct point854 demo854(struct point854 a) { + return a; +} + +struct point855 { + float x0; + char x1; + int x2; + int x3; + int x4; +}; + +struct point855 demo855(struct point855 a) { + return a; +} + +struct point856 { + float x0; + char x1; + int x2; + int x3; + float x4; +}; + +struct point856 demo856(struct point856 a) { + return a; +} + +struct point857 { + float x0; + char x1; + int x2; + float x3; +}; + +struct point857 demo857(struct point857 a) { + return a; +} + +struct point858 { + float x0; + char x1; + int x2; + float x3; + char x4; +}; + +struct point858 demo858(struct point858 a) { + return a; +} + +struct point859 { + float x0; + char x1; + int x2; + float x3; + short x4; +}; + +struct point859 demo859(struct point859 a) { + return a; +} + +struct point860 { + float x0; + char x1; + int x2; + float x3; + int x4; +}; + +struct point860 demo860(struct point860 a) { + return a; +} + +struct point861 { + float x0; + char x1; + int x2; + float x3; + float x4; +}; + +struct point861 demo861(struct point861 a) { + return a; +} + +struct point862 { + float x0; + char x1; + float x2; +}; + +struct point862 demo862(struct point862 a) { + return a; +} + +struct point863 { + float x0; + char x1; + float x2; + char x3; +}; + +struct point863 demo863(struct point863 a) { + return a; +} + +struct point864 { + float x0; + char x1; + float x2; + char x3; + char x4; +}; + +struct point864 demo864(struct point864 a) { + return a; +} + +struct point865 { + float x0; + char x1; + float x2; + char x3; + short x4; +}; + +struct point865 demo865(struct point865 a) { + return a; +} + +struct point866 { + float x0; + char x1; + float x2; + char x3; + int x4; +}; + +struct point866 demo866(struct point866 a) { + return a; +} + +struct point867 { + float x0; + char x1; + float x2; + char x3; + float x4; +}; + +struct point867 demo867(struct point867 a) { + return a; +} + +struct point868 { + float x0; + char x1; + float x2; + short x3; +}; + +struct point868 demo868(struct point868 a) { + return a; +} + +struct point869 { + float x0; + char x1; + float x2; + short x3; + char x4; +}; + +struct point869 demo869(struct point869 a) { + return a; +} + +struct point870 { + float x0; + char x1; + float x2; + short x3; + short x4; +}; + +struct point870 demo870(struct point870 a) { + return a; +} + +struct point871 { + float x0; + char x1; + float x2; + short x3; + int x4; +}; + +struct point871 demo871(struct point871 a) { + return a; +} + +struct point872 { + float x0; + char x1; + float x2; + short x3; + float x4; +}; + +struct point872 demo872(struct point872 a) { + return a; +} + +struct point873 { + float x0; + char x1; + float x2; + int x3; +}; + +struct point873 demo873(struct point873 a) { + return a; +} + +struct point874 { + float x0; + char x1; + float x2; + int x3; + char x4; +}; + +struct point874 demo874(struct point874 a) { + return a; +} + +struct point875 { + float x0; + char x1; + float x2; + int x3; + short x4; +}; + +struct point875 demo875(struct point875 a) { + return a; +} + +struct point876 { + float x0; + char x1; + float x2; + int x3; + int x4; +}; + +struct point876 demo876(struct point876 a) { + return a; +} + +struct point877 { + float x0; + char x1; + float x2; + int x3; + float x4; +}; + +struct point877 demo877(struct point877 a) { + return a; +} + +struct point878 { + float x0; + char x1; + float x2; + float x3; +}; + +struct point878 demo878(struct point878 a) { + return a; +} + +struct point879 { + float x0; + char x1; + float x2; + float x3; + char x4; +}; + +struct point879 demo879(struct point879 a) { + return a; +} + +struct point880 { + float x0; + char x1; + float x2; + float x3; + short x4; +}; + +struct point880 demo880(struct point880 a) { + return a; +} + +struct point881 { + float x0; + char x1; + float x2; + float x3; + int x4; +}; + +struct point881 demo881(struct point881 a) { + return a; +} + +struct point882 { + float x0; + char x1; + float x2; + float x3; + float x4; +}; + +struct point882 demo882(struct point882 a) { + return a; +} + +struct point883 { + float x0; + short x1; + char x2; +}; + +struct point883 demo883(struct point883 a) { + return a; +} + +struct point884 { + float x0; + short x1; + char x2; + char x3; +}; + +struct point884 demo884(struct point884 a) { + return a; +} + +struct point885 { + float x0; + short x1; + char x2; + char x3; + char x4; +}; + +struct point885 demo885(struct point885 a) { + return a; +} + +struct point886 { + float x0; + short x1; + char x2; + char x3; + short x4; +}; + +struct point886 demo886(struct point886 a) { + return a; +} + +struct point887 { + float x0; + short x1; + char x2; + char x3; + int x4; +}; + +struct point887 demo887(struct point887 a) { + return a; +} + +struct point888 { + float x0; + short x1; + char x2; + char x3; + float x4; +}; + +struct point888 demo888(struct point888 a) { + return a; +} + +struct point889 { + float x0; + short x1; + char x2; + short x3; +}; + +struct point889 demo889(struct point889 a) { + return a; +} + +struct point890 { + float x0; + short x1; + char x2; + short x3; + char x4; +}; + +struct point890 demo890(struct point890 a) { + return a; +} + +struct point891 { + float x0; + short x1; + char x2; + short x3; + short x4; +}; + +struct point891 demo891(struct point891 a) { + return a; +} + +struct point892 { + float x0; + short x1; + char x2; + short x3; + int x4; +}; + +struct point892 demo892(struct point892 a) { + return a; +} + +struct point893 { + float x0; + short x1; + char x2; + short x3; + float x4; +}; + +struct point893 demo893(struct point893 a) { + return a; +} + +struct point894 { + float x0; + short x1; + char x2; + int x3; +}; + +struct point894 demo894(struct point894 a) { + return a; +} + +struct point895 { + float x0; + short x1; + char x2; + int x3; + char x4; +}; + +struct point895 demo895(struct point895 a) { + return a; +} + +struct point896 { + float x0; + short x1; + char x2; + int x3; + short x4; +}; + +struct point896 demo896(struct point896 a) { + return a; +} + +struct point897 { + float x0; + short x1; + char x2; + int x3; + int x4; +}; + +struct point897 demo897(struct point897 a) { + return a; +} + +struct point898 { + float x0; + short x1; + char x2; + int x3; + float x4; +}; + +struct point898 demo898(struct point898 a) { + return a; +} + +struct point899 { + float x0; + short x1; + char x2; + float x3; +}; + +struct point899 demo899(struct point899 a) { + return a; +} + +struct point900 { + float x0; + short x1; + char x2; + float x3; + char x4; +}; + +struct point900 demo900(struct point900 a) { + return a; +} + +struct point901 { + float x0; + short x1; + char x2; + float x3; + short x4; +}; + +struct point901 demo901(struct point901 a) { + return a; +} + +struct point902 { + float x0; + short x1; + char x2; + float x3; + int x4; +}; + +struct point902 demo902(struct point902 a) { + return a; +} + +struct point903 { + float x0; + short x1; + char x2; + float x3; + float x4; +}; + +struct point903 demo903(struct point903 a) { + return a; +} + +struct point904 { + float x0; + short x1; + short x2; +}; + +struct point904 demo904(struct point904 a) { + return a; +} + +struct point905 { + float x0; + short x1; + short x2; + char x3; +}; + +struct point905 demo905(struct point905 a) { + return a; +} + +struct point906 { + float x0; + short x1; + short x2; + char x3; + char x4; +}; + +struct point906 demo906(struct point906 a) { + return a; +} + +struct point907 { + float x0; + short x1; + short x2; + char x3; + short x4; +}; + +struct point907 demo907(struct point907 a) { + return a; +} + +struct point908 { + float x0; + short x1; + short x2; + char x3; + int x4; +}; + +struct point908 demo908(struct point908 a) { + return a; +} + +struct point909 { + float x0; + short x1; + short x2; + char x3; + float x4; +}; + +struct point909 demo909(struct point909 a) { + return a; +} + +struct point910 { + float x0; + short x1; + short x2; + short x3; +}; + +struct point910 demo910(struct point910 a) { + return a; +} + +struct point911 { + float x0; + short x1; + short x2; + short x3; + char x4; +}; + +struct point911 demo911(struct point911 a) { + return a; +} + +struct point912 { + float x0; + short x1; + short x2; + short x3; + short x4; +}; + +struct point912 demo912(struct point912 a) { + return a; +} + +struct point913 { + float x0; + short x1; + short x2; + short x3; + int x4; +}; + +struct point913 demo913(struct point913 a) { + return a; +} + +struct point914 { + float x0; + short x1; + short x2; + short x3; + float x4; +}; + +struct point914 demo914(struct point914 a) { + return a; +} + +struct point915 { + float x0; + short x1; + short x2; + int x3; +}; + +struct point915 demo915(struct point915 a) { + return a; +} + +struct point916 { + float x0; + short x1; + short x2; + int x3; + char x4; +}; + +struct point916 demo916(struct point916 a) { + return a; +} + +struct point917 { + float x0; + short x1; + short x2; + int x3; + short x4; +}; + +struct point917 demo917(struct point917 a) { + return a; +} + +struct point918 { + float x0; + short x1; + short x2; + int x3; + int x4; +}; + +struct point918 demo918(struct point918 a) { + return a; +} + +struct point919 { + float x0; + short x1; + short x2; + int x3; + float x4; +}; + +struct point919 demo919(struct point919 a) { + return a; +} + +struct point920 { + float x0; + short x1; + short x2; + float x3; +}; + +struct point920 demo920(struct point920 a) { + return a; +} + +struct point921 { + float x0; + short x1; + short x2; + float x3; + char x4; +}; + +struct point921 demo921(struct point921 a) { + return a; +} + +struct point922 { + float x0; + short x1; + short x2; + float x3; + short x4; +}; + +struct point922 demo922(struct point922 a) { + return a; +} + +struct point923 { + float x0; + short x1; + short x2; + float x3; + int x4; +}; + +struct point923 demo923(struct point923 a) { + return a; +} + +struct point924 { + float x0; + short x1; + short x2; + float x3; + float x4; +}; + +struct point924 demo924(struct point924 a) { + return a; +} + +struct point925 { + float x0; + short x1; + int x2; +}; + +struct point925 demo925(struct point925 a) { + return a; +} + +struct point926 { + float x0; + short x1; + int x2; + char x3; +}; + +struct point926 demo926(struct point926 a) { + return a; +} + +struct point927 { + float x0; + short x1; + int x2; + char x3; + char x4; +}; + +struct point927 demo927(struct point927 a) { + return a; +} + +struct point928 { + float x0; + short x1; + int x2; + char x3; + short x4; +}; + +struct point928 demo928(struct point928 a) { + return a; +} + +struct point929 { + float x0; + short x1; + int x2; + char x3; + int x4; +}; + +struct point929 demo929(struct point929 a) { + return a; +} + +struct point930 { + float x0; + short x1; + int x2; + char x3; + float x4; +}; + +struct point930 demo930(struct point930 a) { + return a; +} + +struct point931 { + float x0; + short x1; + int x2; + short x3; +}; + +struct point931 demo931(struct point931 a) { + return a; +} + +struct point932 { + float x0; + short x1; + int x2; + short x3; + char x4; +}; + +struct point932 demo932(struct point932 a) { + return a; +} + +struct point933 { + float x0; + short x1; + int x2; + short x3; + short x4; +}; + +struct point933 demo933(struct point933 a) { + return a; +} + +struct point934 { + float x0; + short x1; + int x2; + short x3; + int x4; +}; + +struct point934 demo934(struct point934 a) { + return a; +} + +struct point935 { + float x0; + short x1; + int x2; + short x3; + float x4; +}; + +struct point935 demo935(struct point935 a) { + return a; +} + +struct point936 { + float x0; + short x1; + int x2; + int x3; +}; + +struct point936 demo936(struct point936 a) { + return a; +} + +struct point937 { + float x0; + short x1; + int x2; + int x3; + char x4; +}; + +struct point937 demo937(struct point937 a) { + return a; +} + +struct point938 { + float x0; + short x1; + int x2; + int x3; + short x4; +}; + +struct point938 demo938(struct point938 a) { + return a; +} + +struct point939 { + float x0; + short x1; + int x2; + int x3; + int x4; +}; + +struct point939 demo939(struct point939 a) { + return a; +} + +struct point940 { + float x0; + short x1; + int x2; + int x3; + float x4; +}; + +struct point940 demo940(struct point940 a) { + return a; +} + +struct point941 { + float x0; + short x1; + int x2; + float x3; +}; + +struct point941 demo941(struct point941 a) { + return a; +} + +struct point942 { + float x0; + short x1; + int x2; + float x3; + char x4; +}; + +struct point942 demo942(struct point942 a) { + return a; +} + +struct point943 { + float x0; + short x1; + int x2; + float x3; + short x4; +}; + +struct point943 demo943(struct point943 a) { + return a; +} + +struct point944 { + float x0; + short x1; + int x2; + float x3; + int x4; +}; + +struct point944 demo944(struct point944 a) { + return a; +} + +struct point945 { + float x0; + short x1; + int x2; + float x3; + float x4; +}; + +struct point945 demo945(struct point945 a) { + return a; +} + +struct point946 { + float x0; + short x1; + float x2; +}; + +struct point946 demo946(struct point946 a) { + return a; +} + +struct point947 { + float x0; + short x1; + float x2; + char x3; +}; + +struct point947 demo947(struct point947 a) { + return a; +} + +struct point948 { + float x0; + short x1; + float x2; + char x3; + char x4; +}; + +struct point948 demo948(struct point948 a) { + return a; +} + +struct point949 { + float x0; + short x1; + float x2; + char x3; + short x4; +}; + +struct point949 demo949(struct point949 a) { + return a; +} + +struct point950 { + float x0; + short x1; + float x2; + char x3; + int x4; +}; + +struct point950 demo950(struct point950 a) { + return a; +} + +struct point951 { + float x0; + short x1; + float x2; + char x3; + float x4; +}; + +struct point951 demo951(struct point951 a) { + return a; +} + +struct point952 { + float x0; + short x1; + float x2; + short x3; +}; + +struct point952 demo952(struct point952 a) { + return a; +} + +struct point953 { + float x0; + short x1; + float x2; + short x3; + char x4; +}; + +struct point953 demo953(struct point953 a) { + return a; +} + +struct point954 { + float x0; + short x1; + float x2; + short x3; + short x4; +}; + +struct point954 demo954(struct point954 a) { + return a; +} + +struct point955 { + float x0; + short x1; + float x2; + short x3; + int x4; +}; + +struct point955 demo955(struct point955 a) { + return a; +} + +struct point956 { + float x0; + short x1; + float x2; + short x3; + float x4; +}; + +struct point956 demo956(struct point956 a) { + return a; +} + +struct point957 { + float x0; + short x1; + float x2; + int x3; +}; + +struct point957 demo957(struct point957 a) { + return a; +} + +struct point958 { + float x0; + short x1; + float x2; + int x3; + char x4; +}; + +struct point958 demo958(struct point958 a) { + return a; +} + +struct point959 { + float x0; + short x1; + float x2; + int x3; + short x4; +}; + +struct point959 demo959(struct point959 a) { + return a; +} + +struct point960 { + float x0; + short x1; + float x2; + int x3; + int x4; +}; + +struct point960 demo960(struct point960 a) { + return a; +} + +struct point961 { + float x0; + short x1; + float x2; + int x3; + float x4; +}; + +struct point961 demo961(struct point961 a) { + return a; +} + +struct point962 { + float x0; + short x1; + float x2; + float x3; +}; + +struct point962 demo962(struct point962 a) { + return a; +} + +struct point963 { + float x0; + short x1; + float x2; + float x3; + char x4; +}; + +struct point963 demo963(struct point963 a) { + return a; +} + +struct point964 { + float x0; + short x1; + float x2; + float x3; + short x4; +}; + +struct point964 demo964(struct point964 a) { + return a; +} + +struct point965 { + float x0; + short x1; + float x2; + float x3; + int x4; +}; + +struct point965 demo965(struct point965 a) { + return a; +} + +struct point966 { + float x0; + short x1; + float x2; + float x3; + float x4; +}; + +struct point966 demo966(struct point966 a) { + return a; +} + +struct point967 { + float x0; + int x1; + char x2; +}; + +struct point967 demo967(struct point967 a) { + return a; +} + +struct point968 { + float x0; + int x1; + char x2; + char x3; +}; + +struct point968 demo968(struct point968 a) { + return a; +} + +struct point969 { + float x0; + int x1; + char x2; + char x3; + char x4; +}; + +struct point969 demo969(struct point969 a) { + return a; +} + +struct point970 { + float x0; + int x1; + char x2; + char x3; + short x4; +}; + +struct point970 demo970(struct point970 a) { + return a; +} + +struct point971 { + float x0; + int x1; + char x2; + char x3; + int x4; +}; + +struct point971 demo971(struct point971 a) { + return a; +} + +struct point972 { + float x0; + int x1; + char x2; + char x3; + float x4; +}; + +struct point972 demo972(struct point972 a) { + return a; +} + +struct point973 { + float x0; + int x1; + char x2; + short x3; +}; + +struct point973 demo973(struct point973 a) { + return a; +} + +struct point974 { + float x0; + int x1; + char x2; + short x3; + char x4; +}; + +struct point974 demo974(struct point974 a) { + return a; +} + +struct point975 { + float x0; + int x1; + char x2; + short x3; + short x4; +}; + +struct point975 demo975(struct point975 a) { + return a; +} + +struct point976 { + float x0; + int x1; + char x2; + short x3; + int x4; +}; + +struct point976 demo976(struct point976 a) { + return a; +} + +struct point977 { + float x0; + int x1; + char x2; + short x3; + float x4; +}; + +struct point977 demo977(struct point977 a) { + return a; +} + +struct point978 { + float x0; + int x1; + char x2; + int x3; +}; + +struct point978 demo978(struct point978 a) { + return a; +} + +struct point979 { + float x0; + int x1; + char x2; + int x3; + char x4; +}; + +struct point979 demo979(struct point979 a) { + return a; +} + +struct point980 { + float x0; + int x1; + char x2; + int x3; + short x4; +}; + +struct point980 demo980(struct point980 a) { + return a; +} + +struct point981 { + float x0; + int x1; + char x2; + int x3; + int x4; +}; + +struct point981 demo981(struct point981 a) { + return a; +} + +struct point982 { + float x0; + int x1; + char x2; + int x3; + float x4; +}; + +struct point982 demo982(struct point982 a) { + return a; +} + +struct point983 { + float x0; + int x1; + char x2; + float x3; +}; + +struct point983 demo983(struct point983 a) { + return a; +} + +struct point984 { + float x0; + int x1; + char x2; + float x3; + char x4; +}; + +struct point984 demo984(struct point984 a) { + return a; +} + +struct point985 { + float x0; + int x1; + char x2; + float x3; + short x4; +}; + +struct point985 demo985(struct point985 a) { + return a; +} + +struct point986 { + float x0; + int x1; + char x2; + float x3; + int x4; +}; + +struct point986 demo986(struct point986 a) { + return a; +} + +struct point987 { + float x0; + int x1; + char x2; + float x3; + float x4; +}; + +struct point987 demo987(struct point987 a) { + return a; +} + +struct point988 { + float x0; + int x1; + short x2; +}; + +struct point988 demo988(struct point988 a) { + return a; +} + +struct point989 { + float x0; + int x1; + short x2; + char x3; +}; + +struct point989 demo989(struct point989 a) { + return a; +} + +struct point990 { + float x0; + int x1; + short x2; + char x3; + char x4; +}; + +struct point990 demo990(struct point990 a) { + return a; +} + +struct point991 { + float x0; + int x1; + short x2; + char x3; + short x4; +}; + +struct point991 demo991(struct point991 a) { + return a; +} + +struct point992 { + float x0; + int x1; + short x2; + char x3; + int x4; +}; + +struct point992 demo992(struct point992 a) { + return a; +} + +struct point993 { + float x0; + int x1; + short x2; + char x3; + float x4; +}; + +struct point993 demo993(struct point993 a) { + return a; +} + +struct point994 { + float x0; + int x1; + short x2; + short x3; +}; + +struct point994 demo994(struct point994 a) { + return a; +} + +struct point995 { + float x0; + int x1; + short x2; + short x3; + char x4; +}; + +struct point995 demo995(struct point995 a) { + return a; +} + +struct point996 { + float x0; + int x1; + short x2; + short x3; + short x4; +}; + +struct point996 demo996(struct point996 a) { + return a; +} + +struct point997 { + float x0; + int x1; + short x2; + short x3; + int x4; +}; + +struct point997 demo997(struct point997 a) { + return a; +} + +struct point998 { + float x0; + int x1; + short x2; + short x3; + float x4; +}; + +struct point998 demo998(struct point998 a) { + return a; +} + +struct point999 { + float x0; + int x1; + short x2; + int x3; +}; + +struct point999 demo999(struct point999 a) { + return a; +} + +struct point1000 { + float x0; + int x1; + short x2; + int x3; + char x4; +}; + +struct point1000 demo1000(struct point1000 a) { + return a; +} + +struct point1001 { + float x0; + int x1; + short x2; + int x3; + short x4; +}; + +struct point1001 demo1001(struct point1001 a) { + return a; +} + +struct point1002 { + float x0; + int x1; + short x2; + int x3; + int x4; +}; + +struct point1002 demo1002(struct point1002 a) { + return a; +} + +struct point1003 { + float x0; + int x1; + short x2; + int x3; + float x4; +}; + +struct point1003 demo1003(struct point1003 a) { + return a; +} + +struct point1004 { + float x0; + int x1; + short x2; + float x3; +}; + +struct point1004 demo1004(struct point1004 a) { + return a; +} + +struct point1005 { + float x0; + int x1; + short x2; + float x3; + char x4; +}; + +struct point1005 demo1005(struct point1005 a) { + return a; +} + +struct point1006 { + float x0; + int x1; + short x2; + float x3; + short x4; +}; + +struct point1006 demo1006(struct point1006 a) { + return a; +} + +struct point1007 { + float x0; + int x1; + short x2; + float x3; + int x4; +}; + +struct point1007 demo1007(struct point1007 a) { + return a; +} + +struct point1008 { + float x0; + int x1; + short x2; + float x3; + float x4; +}; + +struct point1008 demo1008(struct point1008 a) { + return a; +} + +struct point1009 { + float x0; + int x1; + int x2; +}; + +struct point1009 demo1009(struct point1009 a) { + return a; +} + +struct point1010 { + float x0; + int x1; + int x2; + char x3; +}; + +struct point1010 demo1010(struct point1010 a) { + return a; +} + +struct point1011 { + float x0; + int x1; + int x2; + char x3; + char x4; +}; + +struct point1011 demo1011(struct point1011 a) { + return a; +} + +struct point1012 { + float x0; + int x1; + int x2; + char x3; + short x4; +}; + +struct point1012 demo1012(struct point1012 a) { + return a; +} + +struct point1013 { + float x0; + int x1; + int x2; + char x3; + int x4; +}; + +struct point1013 demo1013(struct point1013 a) { + return a; +} + +struct point1014 { + float x0; + int x1; + int x2; + char x3; + float x4; +}; + +struct point1014 demo1014(struct point1014 a) { + return a; +} + +struct point1015 { + float x0; + int x1; + int x2; + short x3; +}; + +struct point1015 demo1015(struct point1015 a) { + return a; +} + +struct point1016 { + float x0; + int x1; + int x2; + short x3; + char x4; +}; + +struct point1016 demo1016(struct point1016 a) { + return a; +} + +struct point1017 { + float x0; + int x1; + int x2; + short x3; + short x4; +}; + +struct point1017 demo1017(struct point1017 a) { + return a; +} + +struct point1018 { + float x0; + int x1; + int x2; + short x3; + int x4; +}; + +struct point1018 demo1018(struct point1018 a) { + return a; +} + +struct point1019 { + float x0; + int x1; + int x2; + short x3; + float x4; +}; + +struct point1019 demo1019(struct point1019 a) { + return a; +} + +struct point1020 { + float x0; + int x1; + int x2; + int x3; +}; + +struct point1020 demo1020(struct point1020 a) { + return a; +} + +struct point1021 { + float x0; + int x1; + int x2; + int x3; + char x4; +}; + +struct point1021 demo1021(struct point1021 a) { + return a; +} + +struct point1022 { + float x0; + int x1; + int x2; + int x3; + short x4; +}; + +struct point1022 demo1022(struct point1022 a) { + return a; +} + +struct point1023 { + float x0; + int x1; + int x2; + int x3; + int x4; +}; + +struct point1023 demo1023(struct point1023 a) { + return a; +} + +struct point1024 { + float x0; + int x1; + int x2; + int x3; + float x4; +}; + +struct point1024 demo1024(struct point1024 a) { + return a; +} + +struct point1025 { + float x0; + int x1; + int x2; + float x3; +}; + +struct point1025 demo1025(struct point1025 a) { + return a; +} + +struct point1026 { + float x0; + int x1; + int x2; + float x3; + char x4; +}; + +struct point1026 demo1026(struct point1026 a) { + return a; +} + +struct point1027 { + float x0; + int x1; + int x2; + float x3; + short x4; +}; + +struct point1027 demo1027(struct point1027 a) { + return a; +} + +struct point1028 { + float x0; + int x1; + int x2; + float x3; + int x4; +}; + +struct point1028 demo1028(struct point1028 a) { + return a; +} + +struct point1029 { + float x0; + int x1; + int x2; + float x3; + float x4; +}; + +struct point1029 demo1029(struct point1029 a) { + return a; +} + +struct point1030 { + float x0; + int x1; + float x2; +}; + +struct point1030 demo1030(struct point1030 a) { + return a; +} + +struct point1031 { + float x0; + int x1; + float x2; + char x3; +}; + +struct point1031 demo1031(struct point1031 a) { + return a; +} + +struct point1032 { + float x0; + int x1; + float x2; + char x3; + char x4; +}; + +struct point1032 demo1032(struct point1032 a) { + return a; +} + +struct point1033 { + float x0; + int x1; + float x2; + char x3; + short x4; +}; + +struct point1033 demo1033(struct point1033 a) { + return a; +} + +struct point1034 { + float x0; + int x1; + float x2; + char x3; + int x4; +}; + +struct point1034 demo1034(struct point1034 a) { + return a; +} + +struct point1035 { + float x0; + int x1; + float x2; + char x3; + float x4; +}; + +struct point1035 demo1035(struct point1035 a) { + return a; +} + +struct point1036 { + float x0; + int x1; + float x2; + short x3; +}; + +struct point1036 demo1036(struct point1036 a) { + return a; +} + +struct point1037 { + float x0; + int x1; + float x2; + short x3; + char x4; +}; + +struct point1037 demo1037(struct point1037 a) { + return a; +} + +struct point1038 { + float x0; + int x1; + float x2; + short x3; + short x4; +}; + +struct point1038 demo1038(struct point1038 a) { + return a; +} + +struct point1039 { + float x0; + int x1; + float x2; + short x3; + int x4; +}; + +struct point1039 demo1039(struct point1039 a) { + return a; +} + +struct point1040 { + float x0; + int x1; + float x2; + short x3; + float x4; +}; + +struct point1040 demo1040(struct point1040 a) { + return a; +} + +struct point1041 { + float x0; + int x1; + float x2; + int x3; +}; + +struct point1041 demo1041(struct point1041 a) { + return a; +} + +struct point1042 { + float x0; + int x1; + float x2; + int x3; + char x4; +}; + +struct point1042 demo1042(struct point1042 a) { + return a; +} + +struct point1043 { + float x0; + int x1; + float x2; + int x3; + short x4; +}; + +struct point1043 demo1043(struct point1043 a) { + return a; +} + +struct point1044 { + float x0; + int x1; + float x2; + int x3; + int x4; +}; + +struct point1044 demo1044(struct point1044 a) { + return a; +} + +struct point1045 { + float x0; + int x1; + float x2; + int x3; + float x4; +}; + +struct point1045 demo1045(struct point1045 a) { + return a; +} + +struct point1046 { + float x0; + int x1; + float x2; + float x3; +}; + +struct point1046 demo1046(struct point1046 a) { + return a; +} + +struct point1047 { + float x0; + int x1; + float x2; + float x3; + char x4; +}; + +struct point1047 demo1047(struct point1047 a) { + return a; +} + +struct point1048 { + float x0; + int x1; + float x2; + float x3; + short x4; +}; + +struct point1048 demo1048(struct point1048 a) { + return a; +} + +struct point1049 { + float x0; + int x1; + float x2; + float x3; + int x4; +}; + +struct point1049 demo1049(struct point1049 a) { + return a; +} + +struct point1050 { + float x0; + int x1; + float x2; + float x3; + float x4; +}; + +struct point1050 demo1050(struct point1050 a) { + return a; +} diff --git a/internal/cabi/_testdata/wrap/struct_uintptr.c b/internal/cabi/_testdata/wrap/struct_uintptr.c new file mode 100644 index 00000000..ab8e3ded --- /dev/null +++ b/internal/cabi/_testdata/wrap/struct_uintptr.c @@ -0,0 +1,350 @@ + +struct point1 { + void* x0; +}; + +struct point1 demo1(struct point1 a) { + return a; +} + +struct point2 { + void* x0; + void* x1; +}; + +struct point2 demo2(struct point2 a) { + return a; +} + +struct point3 { + void* x0; + void* x1; + void* x2; +}; + +struct point3 demo3(struct point3 a) { + return a; +} + +struct point4 { + void* x0; + void* x1; + void* x2; + void* x3; +}; + +struct point4 demo4(struct point4 a) { + return a; +} + +struct point5 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; +}; + +struct point5 demo5(struct point5 a) { + return a; +} + +struct point6 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; +}; + +struct point6 demo6(struct point6 a) { + return a; +} + +struct point7 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; +}; + +struct point7 demo7(struct point7 a) { + return a; +} + +struct point8 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; +}; + +struct point8 demo8(struct point8 a) { + return a; +} + +struct point9 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; +}; + +struct point9 demo9(struct point9 a) { + return a; +} + +struct point10 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; +}; + +struct point10 demo10(struct point10 a) { + return a; +} + +struct point11 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; +}; + +struct point11 demo11(struct point11 a) { + return a; +} + +struct point12 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; +}; + +struct point12 demo12(struct point12 a) { + return a; +} + +struct point13 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; +}; + +struct point13 demo13(struct point13 a) { + return a; +} + +struct point14 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; + void* x13; +}; + +struct point14 demo14(struct point14 a) { + return a; +} + +struct point15 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; + void* x13; + void* x14; +}; + +struct point15 demo15(struct point15 a) { + return a; +} + +struct point16 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; + void* x13; + void* x14; + void* x15; +}; + +struct point16 demo16(struct point16 a) { + return a; +} + +struct point17 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; + void* x13; + void* x14; + void* x15; + void* x16; +}; + +struct point17 demo17(struct point17 a) { + return a; +} + +struct point18 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; + void* x13; + void* x14; + void* x15; + void* x16; + void* x17; +}; + +struct point18 demo18(struct point18 a) { + return a; +} + +struct point19 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; + void* x13; + void* x14; + void* x15; + void* x16; + void* x17; + void* x18; +}; + +struct point19 demo19(struct point19 a) { + return a; +} + +struct point20 { + void* x0; + void* x1; + void* x2; + void* x3; + void* x4; + void* x5; + void* x6; + void* x7; + void* x8; + void* x9; + void* x10; + void* x11; + void* x12; + void* x13; + void* x14; + void* x15; + void* x16; + void* x17; + void* x18; + void* x19; +}; + +struct point20 demo20(struct point20 a) { + return a; +} diff --git a/internal/cabi/arch.go b/internal/cabi/arch.go new file mode 100644 index 00000000..297f7085 --- /dev/null +++ b/internal/cabi/arch.go @@ -0,0 +1,466 @@ +package cabi + +import ( + "github.com/goplus/llvm" +) + +func elementTypesCount(typ llvm.Type) int { + switch typ.TypeKind() { + case llvm.VoidTypeKind: + return 0 + case llvm.StructTypeKind: + var count int + for _, t := range typ.StructElementTypes() { + count += elementTypesCount(t) + } + return count + case llvm.ArrayTypeKind: + return typ.ArrayLength() * elementTypesCount(typ.ElementType()) + } + return 1 +} + +func elementTypes(td llvm.TargetData, typ llvm.Type) (types []llvm.Type) { + switch typ.TypeKind() { + case llvm.VoidTypeKind: + case llvm.StructTypeKind: + for _, t := range typ.StructElementTypes() { + types = append(types, elementTypes(td, t)...) + } + case llvm.ArrayTypeKind: + sub := elementTypes(td, typ.ElementType()) + n := typ.ArrayLength() + for i := 0; i < n; i++ { + types = append(types, sub...) + } + default: + types = append(types, typ) + } + return +} + +func checkTypes(typs []llvm.Type, typ llvm.Type) bool { + for _, t := range typs { + if t != typ { + return false + } + } + return true +} + +func hasTypes(typs []llvm.Type, typ llvm.Type) bool { + for _, t := range typs { + if t == typ { + return true + } + } + return false +} + +type TypeInfoAmd64 struct { + *Transformer +} + +func (p *TypeInfoAmd64) SupportByVal() bool { + return true +} + +func (p *TypeInfoAmd64) SkipEmptyParams() bool { + return true +} + +func (p *TypeInfoAmd64) IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool { + return elementTypesCount(typ) >= 2 +} + +func (p *TypeInfoAmd64) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo { + info := &TypeInfo{} + info.Type = typ + info.Type1 = typ + if typ.TypeKind() == llvm.VoidTypeKind { + info.Kind = AttrVoid + return info + } + info.Size = p.Sizeof(typ) + info.Align = p.Alignof(typ) + if n := elementTypesCount(typ); n >= 2 { + if info.Size > 16 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } else if info.Size <= 8 { + info.Kind = AttrWidthType + info.Type1 = ctx.IntType(info.Size * 8) + types := elementTypes(p.td, typ) + if types[0] == ctx.FloatType() && types[1] == ctx.FloatType() { + info.Type1 = llvm.VectorType(ctx.FloatType(), 2) + } + } else { + types := elementTypes(p.td, typ) + if n == 2 { + // skip (i64|double,*) (*,i64/double) + if p.Sizeof(types[0]) == 8 || p.Sizeof(types[1]) == 8 { + info.Kind = AttrWidthType2 + info.Type1 = types[0] + info.Type2 = types[1] + return info + } + } + var offset int + var index int + for i, et := range types { + align := p.Alignof(et) + offset = (offset + p.Sizeof(et) + align - 1) &^ (align - 1) + if offset < 8 { + continue + } else if offset > 8 { + index = i + } else { + index = i + 1 + } + break + } + subType := func(subs []llvm.Type, left bool) llvm.Type { + if len(subs) == 1 { + return subs[0] + } else if len(subs) == 2 && subs[0] == ctx.FloatType() && subs[1] == ctx.FloatType() { + return llvm.VectorType(ctx.FloatType(), 2) + } + if left { + return ctx.Int64Type() + } + var n int + for _, sub := range subs { + align := p.Alignof(sub) + n = (n + p.Sizeof(sub) + align - 1) &^ (align - 1) + } + n = (n + info.Align - 1) &^ (info.Align - 1) + return ctx.IntType(n * 8) + } + info.Kind = AttrWidthType2 + info.Type1 = subType(types[0:index], true) + info.Type2 = subType(types[index:], false) + } + } + return info +} + +type TypeInfoArm64 struct { + *Transformer +} + +func (p *TypeInfoArm64) SupportByVal() bool { + return false +} + +func (p *TypeInfoArm64) SkipEmptyParams() bool { + return true +} + +func (p *TypeInfoArm64) IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool { + bret := index == 0 + switch typ.TypeKind() { + case llvm.StructTypeKind, llvm.ArrayTypeKind: + if bret && elementTypesCount(typ) == 1 { + return false + } + return true + default: + return false + } +} + +func (p *TypeInfoArm64) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo { + bret := index == 0 + info := &TypeInfo{} + info.Type = typ + info.Type1 = typ + kind := typ.TypeKind() + if kind == llvm.VoidTypeKind { + info.Kind = AttrVoid + return info + } + info.Size = p.Sizeof(typ) + info.Align = p.Alignof(typ) + switch kind { + case llvm.StructTypeKind, llvm.ArrayTypeKind: + types := elementTypes(p.td, typ) + n := len(types) + if bret && n == 1 { + return info + } + if n == 2 { + // skip (i64/ptr,i64/ptr) + if (types[0].TypeKind() == llvm.PointerTypeKind || types[0] == ctx.Int64Type()) && + (types[1].TypeKind() == llvm.PointerTypeKind || types[1] == ctx.Int64Type()) { + return info + } + } + if n <= 4 { + if checkTypes(types, ctx.FloatType()) || checkTypes(types, ctx.DoubleType()) { + return info + } + } + if info.Size > 16 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } else if info.Size <= 8 { + info.Kind = AttrWidthType + if bret { + info.Type1 = ctx.IntType(info.Size * 8) + } else { + info.Type1 = ctx.Int64Type() + } + } else { + info.Kind = AttrWidthType + info.Type1 = llvm.ArrayType(ctx.Int64Type(), 2) + } + } + + return info +} + +type TypeInfoArm struct { + *Transformer +} + +func (p *TypeInfoArm) SupportByVal() bool { + return false +} + +func (p *TypeInfoArm) SkipEmptyParams() bool { + return true +} + +func (p *TypeInfoArm) IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool { + switch typ.TypeKind() { + case llvm.StructTypeKind, llvm.ArrayTypeKind: + return true + default: + return false + } +} + +func (p *TypeInfoArm) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo { + bret := index == 0 + info := &TypeInfo{} + info.Type = typ + info.Type1 = typ + kind := typ.TypeKind() + if kind == llvm.VoidTypeKind { + info.Kind = AttrVoid + return info + } + info.Size = p.Sizeof(typ) + info.Align = p.Alignof(typ) + switch kind { + case llvm.StructTypeKind, llvm.ArrayTypeKind: + types := elementTypes(p.td, typ) + n := len(types) + if n <= 4 { + if checkTypes(types, ctx.FloatType()) || checkTypes(types, ctx.DoubleType()) { + return info + } + } + if bret { + if info.Size > 4 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } else { + info.Kind = AttrWidthType + info.Type1 = ctx.IntType(info.Size * 8) + } + } else { + if info.Size > 64 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } else { + info.Kind = AttrWidthType + if hasTypes(types, ctx.Int64Type()) || hasTypes(types, ctx.DoubleType()) { + size := (info.Size + 7) &^ 7 + info.Type1 = llvm.ArrayType(ctx.Int64Type(), size/8) + } else { + size := (info.Size + 3) &^ 3 + info.Type1 = llvm.ArrayType(ctx.Int32Type(), size/4) + } + } + } + } + + return info +} + +type TypeInfoWasm struct { + *Transformer +} + +func (p *TypeInfoWasm) SupportByVal() bool { + return true +} + +func (p *TypeInfoWasm) SkipEmptyParams() bool { + return true +} + +func (p *TypeInfoWasm) IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool { + return elementTypesCount(typ) >= 2 +} + +func (p *TypeInfoWasm) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo { + info := &TypeInfo{} + info.Type = typ + info.Type1 = typ + if typ.TypeKind() == llvm.VoidTypeKind { + info.Kind = AttrVoid + return info + } + info.Size = p.Sizeof(typ) + info.Align = p.Alignof(typ) + if n := elementTypesCount(typ); n >= 2 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } + return info +} + +type TypeInfoRiscv64 struct { + *Transformer +} + +func (p *TypeInfoRiscv64) SupportByVal() bool { + return true +} + +func (p *TypeInfoRiscv64) SkipEmptyParams() bool { + return true +} + +func (p *TypeInfoRiscv64) IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool { + switch typ.TypeKind() { + case llvm.StructTypeKind, llvm.ArrayTypeKind: + return true + } + return false +} + +func (p *TypeInfoRiscv64) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo { + info := &TypeInfo{} + info.Type = typ + info.Type1 = typ + if typ.TypeKind() == llvm.VoidTypeKind { + info.Kind = AttrVoid + return info + } + info.Size = p.Sizeof(typ) + info.Align = p.Alignof(typ) + switch typ.TypeKind() { + case llvm.StructTypeKind, llvm.ArrayTypeKind: + types := elementTypes(p.td, typ) + switch len(types) { + case 1: + if types[0].TypeKind() == llvm.PointerTypeKind || types[0] == ctx.Int64Type() { + return info + } + case 2: + if (types[0].TypeKind() == llvm.PointerTypeKind || types[0] == ctx.Int64Type()) && + (types[1].TypeKind() == llvm.PointerTypeKind || types[1] == ctx.Int64Type()) { + return info + } + } + if info.Size > 16 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } else if info.Size <= 8 { + info.Kind = AttrWidthType + info.Type1 = ctx.Int64Type() + } else { + info.Kind = AttrWidthType + info.Type1 = llvm.ArrayType(ctx.Int64Type(), 2) + } + } + return info +} + +type TypeInfo386 struct { + *Transformer +} + +func (p *TypeInfo386) SupportByVal() bool { + return true +} + +func (p *TypeInfo386) SkipEmptyParams() bool { + return false +} + +func (p *TypeInfo386) IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool { + switch typ.TypeKind() { + case llvm.ArrayTypeKind, llvm.StructTypeKind: + return true + } + return false +} + +func (p *TypeInfo386) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo { + bret := index == 0 + info := &TypeInfo{} + info.Type = typ + info.Type1 = typ + if typ.TypeKind() == llvm.VoidTypeKind { + info.Kind = AttrVoid + return info + } + info.Size = p.Sizeof(typ) + info.Align = p.Alignof(typ) + if info.Size == 0 { + if bret { + return info + } + if index == 1 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + return info + } + info.Kind = AttrVoid + info.Type1 = ctx.VoidType() + return info + } + switch typ.TypeKind() { + case llvm.StructTypeKind: + if !bret && info.Size <= 16 { + var extract bool + subs := typ.StructElementTypes() + loop: + for _, sub := range subs { + switch sub.TypeKind() { + case llvm.FloatTypeKind, llvm.DoubleTypeKind, llvm.PointerTypeKind: + extract = true + case llvm.IntegerTypeKind: + if width := sub.IntTypeWidth(); width == 32 || width == 64 { + extract = true + } else { + extract = false + break loop + } + default: + extract = false + break loop + } + } + if extract { + if len(subs) == 1 { + info.Kind = AttrWidthType + info.Type1 = subs[0] + } else { + info.Kind = AttrExtract + } + return info + } + } + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + case llvm.ArrayTypeKind: + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } + return info +} diff --git a/internal/cabi/cabi.go b/internal/cabi/cabi.go new file mode 100644 index 00000000..3a5bea5f --- /dev/null +++ b/internal/cabi/cabi.go @@ -0,0 +1,594 @@ +package cabi + +import ( + "strings" + + "github.com/goplus/llgo/ssa" + "github.com/goplus/llvm" +) + +type Mode int + +const ( + ModeNone Mode = iota + ModeCFunc + ModeAllFunc +) + +func NewTransformer(prog ssa.Program, mode Mode) *Transformer { + target := prog.Target() + tr := &Transformer{ + prog: prog, + td: prog.TargetData(), + GOOS: target.GOOS, + GOARCH: target.GOARCH, + mode: mode, + } + switch target.GOARCH { + case "amd64": + tr.sys = &TypeInfoAmd64{tr} + case "arm64": + tr.sys = &TypeInfoArm64{tr} + case "arm": + tr.sys = &TypeInfoArm{tr} + case "wasm": + tr.sys = &TypeInfoWasm{tr} + case "riscv64": + tr.sys = &TypeInfoRiscv64{tr} + case "386": + tr.sys = &TypeInfo386{tr} + } + return tr +} + +type Transformer struct { + prog ssa.Program + td llvm.TargetData + GOOS string + GOARCH string + sys TypeInfoSys + mode Mode +} + +func (p *Transformer) isCFunc(name string) bool { + return !strings.Contains(name, ".") +} + +func (p *Transformer) TransformModule(path string, m llvm.Module) { + ctx := m.Context() + var fns []llvm.Value + var callInstrs []llvm.Value + switch p.mode { + case ModeNone: + return + case ModeCFunc: + fn := m.FirstFunction() + for !fn.IsNil() { + if p.isCFunc(fn.Name()) { + p.transformFuncCall(m, fn) + if p.isWrapFunctionType(m.Context(), fn.GlobalValueType()) { + fns = append(fns, fn) + use := fn.FirstUse() + for !use.IsNil() { + if call := use.User().IsACallInst(); !call.IsNil() && call.CalledValue() == fn { + callInstrs = append(callInstrs, call) + } + use = use.NextUse() + } + } + } + fn = llvm.NextFunction(fn) + } + case ModeAllFunc: + fn := m.FirstFunction() + for !fn.IsNil() { + if p.isWrapFunctionType(ctx, fn.GlobalValueType()) { + fns = append(fns, fn) + } + bb := fn.FirstBasicBlock() + for !bb.IsNil() { + instr := bb.FirstInstruction() + for !instr.IsNil() { + if call := instr.IsACallInst(); !call.IsNil() { + if p.isWrapFunctionType(ctx, call.CalledFunctionType()) { + callInstrs = append(callInstrs, call) + } + } + instr = llvm.NextInstruction(instr) + } + bb = llvm.NextBasicBlock(bb) + } + fn = llvm.NextFunction(fn) + } + } + for _, call := range callInstrs { + p.transformCallInstr(ctx, call) + } + for _, fn := range fns { + p.transformFunc(m, fn) + } +} + +func (p *Transformer) isWrapFunctionType(ctx llvm.Context, ft llvm.Type) bool { + if p.IsWrapType(ctx, ft, ft.ReturnType(), 0) { + return true + } + for i, typ := range ft.ParamTypes() { + if p.IsWrapType(ctx, ft, typ, i+1) { + return true + } + } + return false +} + +type TypeInfoSys interface { + SupportByVal() bool + SkipEmptyParams() bool + IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool + GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo +} + +type AttrKind int + +const ( + AttrNone AttrKind = iota // keep org type + AttrVoid // return type void / param type void (size == 0) skip + AttrPointer // type => type* + AttrWidthType // type => width int i16/i24/i32/i40/i48/i56/i64 float/double + AttrWidthType2 // type => width two int {i64,i16} float/double + AttrExtract // extract struct type +) + +type FuncInfo struct { + Type llvm.Type // func type + Return *TypeInfo // return info + Params []*TypeInfo // params info +} + +func (p *FuncInfo) HasWrap() bool { + if p.Return.Kind > AttrVoid { + return true + } + for _, t := range p.Params { + if t.Kind > AttrNone { + return true + } + } + return false +} + +type TypeInfo struct { + Type llvm.Type + Kind AttrKind + Type1 llvm.Type // AttrWidthType + Type2 llvm.Type // AttrWidthType2 + Size int + Align int +} + +func byvalAttribute(ctx llvm.Context, typ llvm.Type) llvm.Attribute { + id := llvm.AttributeKindID("byval") + return ctx.CreateTypeAttribute(id, typ) +} + +func sretAttribute(ctx llvm.Context, typ llvm.Type) llvm.Attribute { + id := llvm.AttributeKindID("sret") + return ctx.CreateTypeAttribute(id, typ) +} + +func funcInlineHint(ctx llvm.Context) llvm.Attribute { + return ctx.CreateEnumAttribute(llvm.AttributeKindID("inlinehint"), 0) +} + +func (p *Transformer) IsWrapType(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) bool { + if p.sys != nil { + bret := index == 0 + if p.sys.SkipEmptyParams() && p.isWrapEmptyType(ctx, typ, bret) { + return true + } + return p.sys.IsWrapType(ctx, ftyp, typ, index) + } + return false +} + +func (p *Transformer) isWrapEmptyType(ctx llvm.Context, typ llvm.Type, bret bool) bool { + if !bret && (typ.TypeKind() == llvm.VoidTypeKind || p.Sizeof(typ) == 0) { + return true + } + return false +} + +func (p *Transformer) getEmptyType(ctx llvm.Context, typ llvm.Type, bret bool) (*TypeInfo, bool) { + if typ.TypeKind() == llvm.VoidTypeKind { + return &TypeInfo{Type: typ, Kind: AttrVoid, Type1: ctx.VoidType()}, true + } else if p.Sizeof(typ) == 0 { + if bret { + return &TypeInfo{Type: typ, Kind: AttrNone, Type1: typ}, true + } + return &TypeInfo{Type: typ, Kind: AttrVoid, Type1: ctx.VoidType()}, true + } + return nil, false +} + +func (p *Transformer) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm.Type, index int) *TypeInfo { + if p.sys != nil { + bret := index == 0 + if p.sys.SkipEmptyParams() { + if info, ok := p.getEmptyType(ctx, typ, bret); ok { + return info + } + } + return p.sys.GetTypeInfo(ctx, ftyp, typ, index) + } + panic("not implment: " + p.GOARCH) +} + +func (p *Transformer) Sizeof(typ llvm.Type) int { + return int(p.td.TypeAllocSize(typ)) +} + +func (p *Transformer) Alignof(typ llvm.Type) int { + return int(p.td.ABITypeAlignment(typ)) +} + +func (p *Transformer) GetFuncInfo(ctx llvm.Context, typ llvm.Type) (info FuncInfo) { + info.Type = typ + info.Return = p.GetTypeInfo(ctx, typ, typ.ReturnType(), 0) + params := typ.ParamTypes() + info.Params = make([]*TypeInfo, len(params)) + for i, t := range params { + info.Params[i] = p.GetTypeInfo(ctx, typ, t, i+1) + } + return +} + +func (p *Transformer) transformFuncType(ctx llvm.Context, info *FuncInfo) (llvm.Type, map[int]llvm.Attribute) { + var paramTypes []llvm.Type + var returnType llvm.Type + attrs := make(map[int]llvm.Attribute) + switch info.Return.Kind { + case AttrPointer: + returnType = ctx.VoidType() + paramTypes = append(paramTypes, info.Return.Type1) + attrs[1] = sretAttribute(ctx, info.Return.Type) + case AttrWidthType: + returnType = info.Return.Type1 + case AttrWidthType2: + returnType = llvm.StructType([]llvm.Type{info.Return.Type1, info.Return.Type2}, false) + default: + returnType = info.Return.Type1 + } + + for _, ti := range info.Params { + switch ti.Kind { + case AttrVoid: + // skip + case AttrNone, AttrWidthType: + paramTypes = append(paramTypes, ti.Type1) + case AttrPointer: + paramTypes = append(paramTypes, ti.Type1) + if p.sys.SupportByVal() { + attrs[len(paramTypes)] = byvalAttribute(ctx, ti.Type) + } + case AttrWidthType2: + paramTypes = append(paramTypes, ti.Type1, ti.Type2) + case AttrExtract: + subs := ti.Type.StructElementTypes() + paramTypes = append(paramTypes, subs...) + } + } + return llvm.FunctionType(returnType, paramTypes, info.Type.IsFunctionVarArg()), attrs +} + +func (p *Transformer) transformFunc(m llvm.Module, fn llvm.Value) bool { + ctx := m.Context() + info := p.GetFuncInfo(ctx, fn.GlobalValueType()) + if !info.HasWrap() { + return false + } + nft, attrs := p.transformFuncType(ctx, &info) + fname := fn.Name() + fn.SetName("") + nfn := llvm.AddFunction(m, fname, nft) + for i, attr := range attrs { + nfn.AddAttributeAtIndex(i, attr) + } + nfn.SetLinkage(fn.Linkage()) + nfn.SetFunctionCallConv(fn.FunctionCallConv()) + for _, attr := range fn.GetFunctionAttributes() { + nfn.AddAttributeAtIndex(-1, attr) + } + if sp := fn.Subprogram(); !sp.IsNil() { + nfn.SetSubprogram(sp) + } + + if !fn.IsDeclaration() { + p.transformFuncBody(ctx, &info, fn, nfn, nft) + } + + fn.ReplaceAllUsesWith(nfn) + fn.EraseFromParentAsFunction() + return true +} + +func (p *Transformer) transformFuncBody(ctx llvm.Context, info *FuncInfo, fn llvm.Value, nfn llvm.Value, nft llvm.Type) { + var blocks []llvm.BasicBlock + bb := fn.FirstBasicBlock() + for !bb.IsNil() { + blocks = append(blocks, bb) + bb = llvm.NextBasicBlock(bb) + } + for _, bb := range blocks { + bb.RemoveFromParent() + llvm.AppendExistingBasicBlock(nfn, bb) + } + + b := ctx.NewBuilder() + b.SetInsertPointBefore(nfn.EntryBasicBlock().FirstInstruction()) + + params := nfn.Params() + index := 0 + if info.Return.Kind == AttrPointer { + index++ + } + for i, ti := range info.Params { + var nv llvm.Value + switch ti.Kind { + default: + nv = params[index] + case AttrVoid: + nv = llvm.ConstNull(ti.Type) + fn.Param(i).ReplaceAllUsesWith(nv) + // skip + continue + case AttrPointer: + nv = b.CreateLoad(ti.Type, params[index], "") + case AttrWidthType: + iptr := llvm.CreateAlloca(b, ti.Type1) + b.CreateStore(params[index], iptr) + ptr := b.CreateBitCast(iptr, llvm.PointerType(ti.Type, 0), "") + nv = b.CreateLoad(ti.Type, ptr, "") + case AttrWidthType2: + typ := llvm.StructType([]llvm.Type{ti.Type1, ti.Type2}, false) + iptr := llvm.CreateAlloca(b, typ) + b.CreateStore(params[index], b.CreateStructGEP(typ, iptr, 0, "")) + index++ + b.CreateStore(params[index], b.CreateStructGEP(typ, iptr, 1, "")) + ptr := b.CreateBitCast(iptr, llvm.PointerType(ti.Type, 0), "") + nv = b.CreateLoad(ti.Type, ptr, "") + case AttrExtract: + nsubs := ti.Type.StructElementTypesCount() + nv = llvm.Undef(ti.Type) + for i := 0; i < nsubs; i++ { + nv = b.CreateInsertValue(nv, params[index], i, "") + index++ + } + fn.Param(i).ReplaceAllUsesWith(nv) + continue + } + fn.Param(i).ReplaceAllUsesWith(nv) + index++ + } + if info.Return.Kind >= AttrPointer { + var retInstrs []llvm.Value + bb := nfn.FirstBasicBlock() + for !bb.IsNil() { + instr := bb.FirstInstruction() + for !instr.IsNil() { + if !instr.IsAReturnInst().IsNil() { + retInstrs = append(retInstrs, instr) + } + instr = llvm.NextInstruction(instr) + } + bb = llvm.NextBasicBlock(bb) + } + for _, instr := range retInstrs { + ret := instr.Operand(0) + b.SetInsertPointBefore(instr) + var rv llvm.Value + switch info.Return.Kind { + case AttrPointer: + b.CreateStore(ret, params[0]) + rv = b.CreateRetVoid() + case AttrWidthType, AttrWidthType2: + ptr := llvm.CreateAlloca(b, info.Return.Type) + b.CreateStore(ret, ptr) + iptr := b.CreateBitCast(ptr, llvm.PointerType(nft.ReturnType(), 0), "") + rv = b.CreateRet(b.CreateLoad(nft.ReturnType(), iptr, "")) + } + instr.ReplaceAllUsesWith(rv) + instr.EraseFromParentAsInstruction() + } + } +} + +func (p *Transformer) transformCallInstr(ctx llvm.Context, call llvm.Value) bool { + nfn := call.CalledValue() + info := p.GetFuncInfo(ctx, call.CalledFunctionType()) + if !info.HasWrap() { + return false + } + nft, attrs := p.transformFuncType(ctx, &info) + b := ctx.NewBuilder() + b.SetInsertPointBefore(call) + operandCount := len(info.Params) + var nparams []llvm.Value + for i := 0; i < operandCount; i++ { + param := call.Operand(i) + ti := info.Params[i] + switch ti.Kind { + default: + nparams = append(nparams, param) + case AttrVoid: + // none + case AttrPointer: + ptr := llvm.CreateAlloca(b, ti.Type) + b.CreateStore(param, ptr) + nparams = append(nparams, ptr) + case AttrWidthType: + ptr := llvm.CreateAlloca(b, ti.Type) + b.CreateStore(param, ptr) + iptr := b.CreateBitCast(ptr, llvm.PointerType(ti.Type1, 0), "") + nparams = append(nparams, b.CreateLoad(ti.Type1, iptr, "")) + case AttrWidthType2: + ptr := llvm.CreateAlloca(b, ti.Type) + b.CreateStore(param, ptr) + typ := llvm.StructType([]llvm.Type{ti.Type1, ti.Type2}, false) // {i8,i64} + iptr := b.CreateBitCast(ptr, llvm.PointerType(typ, 0), "") + nparams = append(nparams, b.CreateLoad(ti.Type1, b.CreateStructGEP(typ, iptr, 0, ""), "")) + nparams = append(nparams, b.CreateLoad(ti.Type2, b.CreateStructGEP(typ, iptr, 1, ""), "")) + case AttrExtract: + nsubs := ti.Type.StructElementTypesCount() + for i := 0; i < nsubs; i++ { + nparams = append(nparams, b.CreateExtractValue(param, i, "")) + } + } + } + + updateCallAttr := func(call llvm.Value) { + for i, attr := range attrs { + call.AddCallSiteAttribute(i, attr) + } + } + + var instr llvm.Value + switch info.Return.Kind { + case AttrVoid: + instr = llvm.CreateCall(b, nft, nfn, nparams) + updateCallAttr(instr) + case AttrPointer: + ret := llvm.CreateAlloca(b, info.Return.Type) + call := llvm.CreateCall(b, nft, nfn, append([]llvm.Value{ret}, nparams...)) + updateCallAttr(call) + instr = b.CreateLoad(info.Return.Type, ret, "") + case AttrWidthType, AttrWidthType2: + ret := llvm.CreateCall(b, nft, nfn, nparams) + updateCallAttr(ret) + ptr := llvm.CreateAlloca(b, nft.ReturnType()) + b.CreateStore(ret, ptr) + pret := b.CreateBitCast(ptr, llvm.PointerType(info.Return.Type, 0), "") + instr = b.CreateLoad(info.Return.Type, pret, "") + default: + instr = llvm.CreateCall(b, nft, nfn, nparams) + updateCallAttr(instr) + } + call.ReplaceAllUsesWith(instr) + call.RemoveFromParentAsInstruction() + return true +} + +func (p *Transformer) transformFuncCall(m llvm.Module, fn llvm.Value) { + u := fn.FirstUse() + ctx := m.Context() + for !u.IsNil() { + if call := u.User().IsACallInst(); !call.IsNil() { + n := call.OperandsCount() + for i := 0; i < n; i++ { + op := call.Operand(i) + if op == fn { + continue + } + if gv := op.IsAGlobalValue(); !gv.IsNil() { + if ft := gv.GlobalValueType(); ft.TypeKind() == llvm.FunctionTypeKind { + if p.isCFunc(gv.Name()) { + continue + } + if p.isWrapFunctionType(ctx, ft) { + if wrap, ok := p.transformCallbackFunc(m, gv); ok { + call.SetOperand(i, wrap) + } + } + } + } + } + } + u = u.NextUse() + } +} + +func (p *Transformer) transformCallbackFunc(m llvm.Module, fn llvm.Value) (wrap llvm.Value, ok bool) { + ctx := m.Context() + info := p.GetFuncInfo(ctx, fn.GlobalValueType()) + if !info.HasWrap() { + return fn, false + } + + nft, attrs := p.transformFuncType(ctx, &info) + + fname := fn.Name() + wrapName := "__llgo_cdecl$" + fname + if wrapFunc := m.NamedFunction(wrapName); !wrapFunc.IsNil() { + return wrapFunc, true + } + wrapFunc := llvm.AddFunction(m, wrapName, nft) + wrapFunc.SetLinkage(llvm.LinkOnceAnyLinkage) + wrapFunc.AddFunctionAttr(funcInlineHint(ctx)) + + for i, attr := range attrs { + wrapFunc.AddAttributeAtIndex(i, attr) + } + + b := ctx.NewBuilder() + block := llvm.AddBasicBlock(wrapFunc, "entry") + b.SetInsertPointAtEnd(block) + + var nparams []llvm.Value + params := wrapFunc.Params() + index := 0 + if info.Return.Kind == AttrPointer { + index++ + } + for _, ti := range info.Params { + switch ti.Kind { + default: + case AttrVoid: + // none + case AttrPointer: + nparams = append(nparams, b.CreateLoad(ti.Type, params[index], "")) + case AttrWidthType: + iptr := llvm.CreateAlloca(b, ti.Type1) + b.CreateStore(params[index], iptr) + ptr := b.CreateBitCast(iptr, llvm.PointerType(ti.Type, 0), "") + nparams = append(nparams, b.CreateLoad(ti.Type, ptr, "")) + case AttrWidthType2: + typ := llvm.StructType([]llvm.Type{ti.Type1, ti.Type2}, false) + iptr := llvm.CreateAlloca(b, typ) + b.CreateStore(params[index], b.CreateStructGEP(typ, iptr, 0, "")) + index++ + b.CreateStore(params[index], b.CreateStructGEP(typ, iptr, 1, "")) + ptr := b.CreateBitCast(iptr, llvm.PointerType(ti.Type, 0), "") + nparams = append(nparams, b.CreateLoad(ti.Type, ptr, "")) + case AttrExtract: + nsubs := ti.Type.StructElementTypesCount() + nv := llvm.Undef(ti.Type) + for i := 0; i < nsubs; i++ { + nv = b.CreateInsertValue(nv, params[index], i, "") + index++ + } + nparams = append(nparams, nv) + continue + } + index++ + } + + switch info.Return.Kind { + case AttrVoid: + llvm.CreateCall(b, info.Type, fn, nparams) + b.CreateRetVoid() + case AttrPointer: + ret := llvm.CreateCall(b, info.Type, fn, nparams) + b.CreateStore(ret, params[0]) + b.CreateRetVoid() + case AttrWidthType, AttrWidthType2: + ret := llvm.CreateCall(b, info.Type, fn, nparams) + ptr := llvm.CreateAlloca(b, info.Return.Type) + b.CreateStore(ret, ptr) + returnType := nft.ReturnType() + iptr := b.CreateBitCast(ptr, llvm.PointerType(returnType, 0), "") + b.CreateRet(b.CreateLoad(returnType, iptr, "")) + default: + ret := llvm.CreateCall(b, info.Type, fn, nparams) + b.CreateRet(ret) + } + return wrapFunc, true +} diff --git a/internal/cabi/cabi_test.go b/internal/cabi/cabi_test.go new file mode 100644 index 00000000..57313b06 --- /dev/null +++ b/internal/cabi/cabi_test.go @@ -0,0 +1,214 @@ +//go:build !llgo +// +build !llgo + +package cabi_test + +import ( + "os" + "path/filepath" + "runtime" + "strings" + "testing" + + "github.com/goplus/llvm" + + "github.com/goplus/llgo/internal/build" + "github.com/goplus/llgo/internal/cabi" +) + +var ( + modes = []cabi.Mode{cabi.ModeNone, cabi.ModeCFunc, cabi.ModeAllFunc} + archs = []string{"amd64", "arm64", "riscv64", "arm", "386"} + archDir = []string{"amd64", "arm64", "riscv64", "armv6", "i386"} +) + +func init() { + // crosscompile + if runtime.GOOS == "darwin" { + archs = append(archs, "wasm") + archDir = append(archDir, "wasm32") + } +} + +func TestBuild(t *testing.T) { + for _, mode := range modes { + for _, arch := range archs { + conf := build.NewDefaultConf(build.ModeGen) + conf.AbiMode = mode + conf.Goarch = arch + conf.Goos = "linux" + if arch == "wasm" { + conf.Goos = "wasip1" + } + _, err := build.Do([]string{"./_testdata/demo/demo.go"}, conf) + if err != nil { + t.Fatalf("build error: %v-%v %v", arch, mode, err) + } + } + } +} + +func TestABI(t *testing.T) { + dirs, err := os.ReadDir("./_testdata/demo") + if err != nil { + t.Fatal(err) + } + var files []string + for _, f := range dirs { + if !f.IsDir() && strings.HasSuffix(f.Name(), ".go") { + if f.Name() == "demo.go" { + continue + } + files = append(files, f.Name()) + } + } + for i, arch := range archs { + t.Run(arch, func(t *testing.T) { + testArch(t, arch, archDir[i], files) + }) + } +} + +func testArch(t *testing.T, arch string, archDir string, files []string) { + conf := build.NewDefaultConf(build.ModeGen) + conf.AbiMode = cabi.ModeAllFunc + conf.Goarch = arch + conf.Goos = "linux" + if arch == "wasm" { + conf.Goos = "wasip1" + } + for _, file := range files { + pkgs, err := build.Do([]string{filepath.Join("./_testdata/demo", file)}, conf) + if err != nil { + t.Fatalf("build error: %v %v", arch, err) + } + ctx := llvm.NewContext() + llfile := filepath.Join("./_testdata/arch", archDir, file[:len(file)-3]+".ll") + buf, err := llvm.NewMemoryBufferFromFile(llfile) + if err != nil { + t.Fatalf("bad file: %v %v", llfile, err) + } + m, err := ctx.ParseIR(buf) + if err != nil { + t.Fatalf("parser IR error %v", arch) + } + pkg := pkgs[0].LPkg + testModule(t, context{arch: arch, file: file}, pkg.Prog.TargetData(), pkg.Module(), m) + } +} + +type context struct { + arch string + file string +} + +func testModule(t *testing.T, ctx context, td llvm.TargetData, m llvm.Module, c llvm.Module) { + var fns []llvm.Value + fn := c.FirstFunction() + for !fn.IsNil() { + if !fn.IsDeclaration() { + fns = append(fns, fn) + } + fn = llvm.NextFunction(fn) + } + for _, fn := range fns { + // check c linkname + testFunc(t, ctx, td, m.NamedFunction(fn.Name()), fn) + // check go + testFunc(t, ctx, td, m.NamedFunction("command-line-arguments."+fn.Name()), fn) + } +} + +func testFunc(t *testing.T, ctx context, td llvm.TargetData, fn llvm.Value, cfn llvm.Value) { + ft := fn.GlobalValueType() + cft := cfn.GlobalValueType() + pts := ft.ParamTypes() + cpts := cft.ParamTypes() + if len(pts) != len(cpts) { + t.Logf("%v %v: bad param type %v != %v", ctx, fn.Name(), ft, cft) + return + } + for i, pt := range pts { + if !checkType(td, pt, cpts[i], false) { + t.Fatalf("%v %v: bad param type %v != %v", ctx, fn.Name(), ft, cft) + } + if i == 0 { + if fn.GetStringAttributeAtIndex(1, "sret") != cfn.GetStringAttributeAtIndex(1, "sret") { + t.Fatalf("%v %v: bad param attr type %v != %v", ctx, fn.Name(), ft, cft) + } + } + if fn.GetStringAttributeAtIndex(1, "byval") != cfn.GetStringAttributeAtIndex(1, "byval") { + t.Fatalf("%v %v: bad param attr type %v != %v", ctx, fn.Name(), ft, cft) + } + } + if !checkType(td, ft.ReturnType(), cft.ReturnType(), true) { + t.Fatalf("%v %v: bad return type %v != %v", ctx, fn.Name(), ft, cft) + } +} + +func checkType(td llvm.TargetData, ft llvm.Type, cft llvm.Type, bret bool) bool { + if ft == cft { + return true + } + if bret { + if ft.TypeKind() == llvm.VoidTypeKind && (cft.TypeKind() == llvm.VoidTypeKind || td.TypeAllocSize(cft) == 0) { + return true + } else if cft.TypeKind() == llvm.VoidTypeKind && (ft.TypeKind() == llvm.VoidTypeKind || td.TypeAllocSize(ft) == 0) { + return true + } + } else if ft.TypeKind() == llvm.VoidTypeKind && cft.TypeKind() == llvm.VoidTypeKind { + return true + } + if ft.TypeKind() == llvm.VoidTypeKind || cft.TypeKind() == llvm.VoidTypeKind { + return false + } + if td.ABITypeAlignment(ft) != td.ABITypeAlignment(cft) { + return false + } + if td.TypeAllocSize(ft) != td.TypeAllocSize(cft) { + return false + } + et := elementTypes(td, ft) + cet := elementTypes(td, cft) + if len(et) != len(cet) { + return false + } + if len(et) == 1 { + return true + } + for i, t := range et { + if !checkType(td, t, cet[i], bret) { + return false + } + } + return true +} + +func elementTypes(td llvm.TargetData, typ llvm.Type) (types []llvm.Type) { + switch typ.TypeKind() { + case llvm.VoidTypeKind: + case llvm.StructTypeKind: + for _, t := range typ.StructElementTypes() { + types = append(types, elementTypes(td, t)...) + } + case llvm.ArrayTypeKind: + sub := elementTypes(td, typ.ElementType()) + n := typ.ArrayLength() + for i := 0; i < n; i++ { + types = append(types, sub...) + } + default: + types = append(types, typ) + } + return +} + +func byvalAttribute(ctx llvm.Context, typ llvm.Type) llvm.Attribute { + id := llvm.AttributeKindID("byval") + return ctx.CreateTypeAttribute(id, typ) +} + +func sretAttribute(ctx llvm.Context, typ llvm.Type) llvm.Attribute { + id := llvm.AttributeKindID("sret") + return ctx.CreateTypeAttribute(id, typ) +} diff --git a/internal/llgen/llgenf.go b/internal/llgen/llgenf.go index 55e5d5af..4ac61b50 100644 --- a/internal/llgen/llgenf.go +++ b/internal/llgen/llgenf.go @@ -27,12 +27,12 @@ import ( ) func GenFrom(fileOrPkg string) string { - pkg, err := genFrom(fileOrPkg) + pkg, err := genFrom(fileOrPkg, 0) check(err) return pkg.LPkg.String() } -func genFrom(pkgPath string) (build.Package, error) { +func genFrom(pkgPath string, abiMode build.AbiMode) (build.Package, error) { oldDbg := os.Getenv("LLGO_DEBUG") oldDbgSyms := os.Getenv("LLGO_DEBUG_SYMBOLS") dbg := isDbgSymEnabled(filepath.Join(pkgPath, "flags.txt")) @@ -46,8 +46,9 @@ func genFrom(pkgPath string) (build.Package, error) { }() conf := &build.Config{ - Mode: build.ModeGen, - AppExt: build.DefaultAppExt(runtime.GOOS), + Mode: build.ModeGen, + AbiMode: abiMode, + AppExt: build.DefaultAppExt(runtime.GOOS), } pkgs, err := build.Do([]string{pkgPath}, conf) if err != nil { @@ -77,7 +78,11 @@ func isDbgSymEnabled(flagsFile string) bool { } func SmartDoFile(pkgPath string) { - pkg, err := genFrom(pkgPath) + SmartDoFileEx(pkgPath, 0) +} + +func SmartDoFileEx(pkgPath string, abiMode build.AbiMode) { + pkg, err := genFrom(pkgPath, abiMode) check(err) const autgenFile = "llgo_autogen.ll" diff --git a/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c b/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c index 3756ee17..8dde9cb1 100644 --- a/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c +++ b/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c @@ -1,19 +1,12 @@ #if defined(__GNUC__) || defined(__clang__) +#include + void llgo_getcpuid(unsigned int eax, unsigned int ecx, unsigned int *a, unsigned int *b, unsigned int *c, unsigned int *d) { #if defined(__i386__) || defined(__x86_64__) - __asm__ __volatile__( - "pushq %%rbp\n\t" - "movq %%rsp, %%rbp\n\t" - "andq $-16, %%rsp\n\t" // 16-byte align stack - "cpuid\n\t" - "movq %%rbp, %%rsp\n\t" - "popq %%rbp\n\t" - : "=a"(*a), "=b"(*b), "=c"(*c), "=d"(*d) - : "a"(eax), "c"(ecx) - : "memory"); + __cpuid_count(eax, ecx, *a, *b, *c, *d); #endif } #else diff --git a/runtime/internal/lib/os/dir.go b/runtime/internal/lib/os/dir.go index 4eb102ed..37840e62 100644 --- a/runtime/internal/lib/os/dir.go +++ b/runtime/internal/lib/os/dir.go @@ -120,6 +120,14 @@ func direntNamePtr(name any) *byte { return name case []byte: return &name[0] + case [1024]int8: + return (*byte)(unsafe.Pointer(&name[0])) + case [512]int8: + return (*byte)(unsafe.Pointer(&name[0])) + case [256]int8: + return (*byte)(unsafe.Pointer(&name[0])) + case [256]uint8: + return (*byte)(unsafe.Pointer(&name[0])) default: panic("invalid type") } diff --git a/ssa/expr.go b/ssa/expr.go index ffebb888..6f98cb38 100644 --- a/ssa/expr.go +++ b/ssa/expr.go @@ -275,6 +275,17 @@ func (b Builder) CBytes(v Expr) Expr { return b.Call(fn, v) } +// InlineAsm generates inline assembly instruction +func (b Builder) InlineAsm(instruction string) { + if debugInstr { + log.Printf("InlineAsm %s\n", instruction) + } + + typ := llvm.FunctionType(b.Prog.tyVoid(), nil, false) + asm := llvm.InlineAsm(typ, instruction, "", true, false, llvm.InlineAsmDialectATT, false) + b.impl.CreateCall(typ, asm, nil, "") +} + // GoString returns a Go string func (b Builder) GoString(v Expr) Expr { fn := b.Pkg.rtFunc("GoString") diff --git a/ssa/interface.go b/ssa/interface.go index 6f3e0d98..f31f15d2 100644 --- a/ssa/interface.go +++ b/ssa/interface.go @@ -241,11 +241,10 @@ func (b Builder) TypeAssert(x Expr, assertedTyp Type, commaOk bool) Expr { } tx := b.faceAbiType(x) tabi := b.abiType(assertedTyp.raw.Type) - var eq Expr var val func() Expr if x.RawType() == assertedTyp.RawType() { - eq = b.Const(constant.MakeBool(true), b.Prog.Bool()) + eq = b.Const(constant.MakeBool(!b.faceData(x.impl).IsNull()), b.Prog.Bool()) val = func() Expr { return x } } else { if rawIntf, ok := assertedTyp.raw.Type.Underlying().(*types.Interface); ok { diff --git a/ssa/package.go b/ssa/package.go index 40054a9e..f60c3545 100644 --- a/ssa/package.go +++ b/ssa/package.go @@ -265,6 +265,14 @@ func NewProgram(target *Target) Program { } } +func (p Program) Target() *Target { + return p.target +} + +func (p Program) TargetData() llvm.TargetData { + return p.td +} + func (p Program) SetPatch(patchType func(types.Type) types.Type) { p.patchType = patchType } @@ -689,6 +697,10 @@ type aPackage struct { type Package = *aPackage +func (p Package) Module() llvm.Module { + return p.mod +} + func (p Package) rtFunc(fnName string) Expr { p.NeedRuntime = true fn := p.Prog.runtime().Scope().Lookup(fnName).(*types.Func) diff --git a/ssa/python.go b/ssa/python.go index a0e29bca..e6718181 100644 --- a/ssa/python.go +++ b/ssa/python.go @@ -455,6 +455,9 @@ func (b Builder) PyVal(v Expr) (ret Expr) { return b.PyComplex64(v) case types.Complex128: return b.PyComplex128(v) + case types.UnsafePointer: + typ := b.Prog.Uint64() + return b.PyUint64(Expr{llvm.CreatePtrToInt(b.impl, v.impl, typ.ll), typ}) } case *types.Slice: if elem, ok := t.Elem().Underlying().(*types.Basic); ok && elem.Kind() == types.Byte { @@ -471,6 +474,8 @@ func (b Builder) PyVal(v Expr) (ret Expr) { if v.kind == vkPyFuncRef { return b.Load(v) } + typ := b.Prog.Uint64() + return b.PyUint64(Expr{llvm.CreatePtrToInt(b.impl, v.impl, typ.ll), typ}) } panic("PyVal: todo " + v.raw.Type.String()) }