From 8bfe133beedefdeb410c163fce82cb5a64bb1095 Mon Sep 17 00:00:00 2001 From: visualfc Date: Fri, 12 Sep 2025 20:00:55 +0800 Subject: [PATCH] internal/cabi: support target esp32c3 --- internal/build/build.go | 2 +- .../_testdata/arch/esp32c3/array_float32.ll | 246 + .../_testdata/arch/esp32c3/array_float64.ll | 244 + .../_testdata/arch/esp32c3/array_int16.ll | 257 + .../_testdata/arch/esp32c3/array_int32.ll | 246 + .../_testdata/arch/esp32c3/array_int64.ll | 244 + .../cabi/_testdata/arch/esp32c3/array_int8.ll | 279 + .../_testdata/arch/esp32c3/array_pointer.ll | 246 + .../_testdata/arch/esp32c3/array_uintptr.ll | 246 + internal/cabi/_testdata/arch/esp32c3/basic.ll | 73 + .../cabi/_testdata/arch/esp32c3/composite.ll | 128 + internal/cabi/_testdata/arch/esp32c3/empty.ll | 63 + .../_testdata/arch/esp32c3/struct_float32.ll | 244 + .../_testdata/arch/esp32c3/struct_float64.ll | 244 + .../_testdata/arch/esp32c3/struct_int16.ll | 250 + .../_testdata/arch/esp32c3/struct_int32.ll | 244 + .../_testdata/arch/esp32c3/struct_int64.ll | 244 + .../_testdata/arch/esp32c3/struct_int8.ll | 264 + .../_testdata/arch/esp32c3/struct_mixed.ll | 11600 ++++++++++++++++ .../_testdata/arch/esp32c3/struct_uintptr.ll | 246 + internal/cabi/arch.go | 72 +- internal/cabi/cabi.go | 5 +- internal/cabi/cabi_test.go | 6 +- internal/crosscompile/crosscompile.go | 2 + 24 files changed, 15691 insertions(+), 4 deletions(-) create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_float32.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_float64.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_int16.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_int32.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_int64.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_int8.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_pointer.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/array_uintptr.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/basic.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/composite.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/empty.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_float32.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_float64.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_int16.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_int32.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_int64.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_int8.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_mixed.ll create mode 100644 internal/cabi/_testdata/arch/esp32c3/struct_uintptr.ll diff --git a/internal/build/build.go b/internal/build/build.go index 93f581ac..fd1515c4 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -333,7 +333,7 @@ func Do(args []string, conf *Config) ([]Package, error) { needPyInit: make(map[*packages.Package]bool), buildConf: conf, crossCompile: export, - cTransformer: cabi.NewTransformer(prog, conf.Target, conf.AbiMode, cabiOptimize), + cTransformer: cabi.NewTransformer(prog, conf.Target, export.TargetABI, conf.AbiMode, cabiOptimize), } pkgs, err := buildAllPkgs(ctx, initial, verbose) check(err) diff --git a/internal/cabi/_testdata/arch/esp32c3/array_float32.ll b/internal/cabi/_testdata/arch/esp32c3/array_float32.ll new file mode 100644 index 00000000..4175ec13 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_float32.ll @@ -0,0 +1,246 @@ +; ModuleID = '../../wrap/array_float32.c' +source_filename = "../../wrap/array_float32.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 4 + ret i32 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array2, ptr %2, i32 0, i32 0 + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.array3) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.array4) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.array6) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.array7) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.array8) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/array_float64.ll b/internal/cabi/_testdata/arch/esp32c3/array_float64.ll new file mode 100644 index 00000000..39caf181 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_float64.ll @@ -0,0 +1,244 @@ +; ModuleID = '../../wrap/array_float64.c' +source_filename = "../../wrap/array_float64.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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, ptr %3, i32 0, i32 0 + store i64 %0, ptr %4, align 8 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %2, ptr align 8 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + %6 = load i64, ptr %5, align 8 + ret i64 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(ptr dead_on_unwind noalias writable sret(%struct.array2) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.array3) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.array4) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.array6) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.array7) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.array8) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/array_int16.ll b/internal/cabi/_testdata/arch/esp32c3/array_int16.ll new file mode 100644 index 00000000..f28f17c7 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_int16.ll @@ -0,0 +1,257 @@ +; ModuleID = '../../wrap/array_int16.c' +source_filename = "../../wrap/array_int16.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 2 + %3 = alloca %struct.array1, align 2 + %4 = alloca i32, align 4 + %5 = getelementptr inbounds %struct.array1, ptr %3, i32 0, i32 0 + %6 = trunc i32 %0 to i16 + store i16 %6, ptr %5, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 2, i1 false) + %7 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %4, ptr align 2 %7, i32 2, i1 false) + %8 = load i32, ptr %4, align 4 + ret i32 %8 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +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, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.array2, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 2 + ret i32 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo3([2 x i32] %0) #0 { + %2 = alloca %struct.array3, align 2 + %3 = alloca %struct.array3, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + %6 = getelementptr inbounds %struct.array3, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %6, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + %7 = getelementptr inbounds %struct.array3, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %7, i32 6, i1 false) + %8 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo4([2 x i32] %0) #0 { + %2 = alloca %struct.array4, align 2 + %3 = alloca %struct.array4, align 2 + %4 = getelementptr inbounds %struct.array4, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array4, ptr %2, i32 0, i32 0 + %6 = load [2 x i32], ptr %5, align 2 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.array6) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.array7) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.array8) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/array_int32.ll b/internal/cabi/_testdata/arch/esp32c3/array_int32.ll new file mode 100644 index 00000000..55e8349f --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_int32.ll @@ -0,0 +1,246 @@ +; ModuleID = '../../wrap/array_int32.c' +source_filename = "../../wrap/array_int32.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 4 + %3 = alloca %struct.array1, align 4 + %4 = getelementptr inbounds %struct.array1, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 4 + ret i32 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array2, ptr %2, i32 0, i32 0 + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.array3) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.array4) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.array6) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.array7) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.array8) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/array_int64.ll b/internal/cabi/_testdata/arch/esp32c3/array_int64.ll new file mode 100644 index 00000000..f709305a --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_int64.ll @@ -0,0 +1,244 @@ +; ModuleID = '../../wrap/array_int64.c' +source_filename = "../../wrap/array_int64.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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, ptr %3, i32 0, i32 0 + store i64 %0, ptr %4, align 8 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %2, ptr align 8 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + %6 = load i64, ptr %5, align 8 + ret i64 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(ptr dead_on_unwind noalias writable sret(%struct.array2) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.array3) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.array4) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.array6) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.array7) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.array8) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/array_int8.ll b/internal/cabi/_testdata/arch/esp32c3/array_int8.ll new file mode 100644 index 00000000..f0a9ebd1 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_int8.ll @@ -0,0 +1,279 @@ +; ModuleID = '../../wrap/array_int8.c' +source_filename = "../../wrap/array_int8.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.array1, align 1 + %3 = alloca %struct.array1, align 1 + %4 = alloca i32, align 4 + %5 = getelementptr inbounds %struct.array1, ptr %3, i32 0, i32 0 + %6 = trunc i32 %0 to i8 + store i8 %6, ptr %5, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 1, i1 false) + %7 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %4, ptr align 1 %7, i32 1, i1 false) + %8 = load i32, ptr %4, align 4 + ret i32 %8 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.array2, align 1 + %3 = alloca %struct.array2, align 1 + %4 = alloca i32, align 4 + %5 = getelementptr inbounds %struct.array2, ptr %3, i32 0, i32 0 + %6 = trunc i32 %0 to i16 + store i16 %6, ptr %5, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 2, i1 false) + %7 = getelementptr inbounds %struct.array2, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %4, ptr align 1 %7, i32 2, i1 false) + %8 = load i32, ptr %4, align 4 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3(i32 %0) #0 { + %2 = alloca %struct.array3, align 1 + %3 = alloca %struct.array3, align 1 + %4 = alloca i32, align 4 + %5 = getelementptr inbounds %struct.array3, ptr %3, i32 0, i32 0 + %6 = trunc i32 %0 to i24 + store i24 %6, ptr %5, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 3, i1 false) + %7 = getelementptr inbounds %struct.array3, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %4, ptr align 1 %7, i32 3, i1 false) + %8 = load i32, ptr %4, align 4 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +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, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.array4, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 1 + ret i32 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo5([2 x i32] %0) #0 { + %2 = alloca %struct.array5, align 1 + %3 = alloca %struct.array5, align 1 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + %6 = getelementptr inbounds %struct.array5, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %6, ptr align 4 %4, i32 5, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 5, i1 false) + %7 = getelementptr inbounds %struct.array5, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 1 %7, i32 5, i1 false) + %8 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo6([2 x i32] %0) #0 { + %2 = alloca %struct.array6, align 1 + %3 = alloca %struct.array6, align 1 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + %6 = getelementptr inbounds %struct.array6, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %6, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 6, i1 false) + %7 = getelementptr inbounds %struct.array6, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 1 %7, i32 6, i1 false) + %8 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo7([2 x i32] %0) #0 { + %2 = alloca %struct.array7, align 1 + %3 = alloca %struct.array7, align 1 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + %6 = getelementptr inbounds %struct.array7, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %6, ptr align 4 %4, i32 7, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 7, i1 false) + %7 = getelementptr inbounds %struct.array7, ptr %2, i32 0, i32 0 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 1 %7, i32 7, i1 false) + %8 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo8([2 x i32] %0) #0 { + %2 = alloca %struct.array8, align 1 + %3 = alloca %struct.array8, align 1 + %4 = getelementptr inbounds %struct.array8, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array8, ptr %2, i32 0, i32 0 + %6 = load [2 x i32], ptr %5, align 1 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/array_pointer.ll b/internal/cabi/_testdata/arch/esp32c3/array_pointer.ll new file mode 100644 index 00000000..329895fb --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_pointer.ll @@ -0,0 +1,246 @@ +; ModuleID = '../../wrap/array_pointer.c' +source_filename = "../../wrap/array_pointer.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-unknown-elf" + +%struct.array1 = type { [1 x ptr] } +%struct.array2 = type { [2 x ptr] } +%struct.array3 = type { [3 x ptr] } +%struct.array4 = type { [4 x ptr] } +%struct.array5 = type { [5 x ptr] } +%struct.array6 = type { [6 x ptr] } +%struct.array7 = type { [7 x ptr] } +%struct.array8 = type { [8 x ptr] } +%struct.array9 = type { [9 x ptr] } +%struct.array10 = type { [10 x ptr] } +%struct.array11 = type { [11 x ptr] } +%struct.array12 = type { [12 x ptr] } +%struct.array13 = type { [13 x ptr] } +%struct.array14 = type { [14 x ptr] } +%struct.array15 = type { [15 x ptr] } +%struct.array16 = type { [16 x ptr] } +%struct.array17 = type { [17 x ptr] } +%struct.array18 = type { [18 x ptr] } +%struct.array19 = type { [19 x ptr] } +%struct.array20 = type { [20 x ptr] } + +; Function Attrs: noinline nounwind optnone +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, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 4 + ret i32 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array2, ptr %2, i32 0, i32 0 + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.array3) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.array4) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.array6) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.array7) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.array8) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/array_uintptr.ll b/internal/cabi/_testdata/arch/esp32c3/array_uintptr.ll new file mode 100644 index 00000000..9b1db569 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/array_uintptr.ll @@ -0,0 +1,246 @@ +; ModuleID = '../../wrap/array_uintptr.c' +source_filename = "../../wrap/array_uintptr.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-unknown-elf" + +%struct.array1 = type { [1 x ptr] } +%struct.array2 = type { [2 x ptr] } +%struct.array3 = type { [3 x ptr] } +%struct.array4 = type { [4 x ptr] } +%struct.array5 = type { [5 x ptr] } +%struct.array6 = type { [6 x ptr] } +%struct.array7 = type { [7 x ptr] } +%struct.array8 = type { [8 x ptr] } +%struct.array9 = type { [9 x ptr] } +%struct.array10 = type { [10 x ptr] } +%struct.array11 = type { [11 x ptr] } +%struct.array12 = type { [12 x ptr] } +%struct.array13 = type { [13 x ptr] } +%struct.array14 = type { [14 x ptr] } +%struct.array15 = type { [15 x ptr] } +%struct.array16 = type { [16 x ptr] } +%struct.array17 = type { [17 x ptr] } +%struct.array18 = type { [18 x ptr] } +%struct.array19 = type { [19 x ptr] } +%struct.array20 = type { [20 x ptr] } + +; Function Attrs: noinline nounwind optnone +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, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.array1, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 4 + ret i32 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.array2, align 4 + %3 = alloca %struct.array2, align 4 + %4 = getelementptr inbounds %struct.array2, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.array2, ptr %2, i32 0, i32 0 + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.array3) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.array4) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.array5) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.array6) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.array7) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.array8) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.array9) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.array10) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.array11) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.array12) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.array13) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.array14) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.array15) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.array16) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.array17) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.array18) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.array19) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.array20) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/basic.ll b/internal/cabi/_testdata/arch/esp32c3/basic.ll new file mode 100644 index 00000000..ad87fcd7 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/basic.ll @@ -0,0 +1,73 @@ +; ModuleID = '../../wrap/basic.c' +source_filename = "../../wrap/basic.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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, ptr %2, align 1 + %3 = load i8, ptr %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, ptr %2, align 2 + %3 = load i16, ptr %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, ptr %2, align 4 + %3 = load i32, ptr %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, ptr %2, align 8 + %3 = load i64, ptr %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, ptr %2, align 4 + %3 = load float, ptr %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, ptr %2, align 8 + %3 = load double, ptr %2, align 8 + ret double %3 +} + +; Function Attrs: noinline nounwind optnone +define dso_local ptr @basic_uintptr(ptr noundef %0) #0 { + %2 = alloca ptr, align 4 + store ptr %0, ptr %2, align 4 + %3 = load ptr, ptr %2, align 4 + ret ptr %3 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/composite.ll b/internal/cabi/_testdata/arch/esp32c3/composite.ll new file mode 100644 index 00000000..5be77892 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/composite.ll @@ -0,0 +1,128 @@ +; ModuleID = '../../wrap/composite.c' +source_filename = "../../wrap/composite.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo_array10(i32 %0) #0 { + %2 = alloca %struct.array10, align 4 + %3 = alloca %struct.array10, align 4 + %4 = getelementptr inbounds %struct.array10, ptr %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray1, ptr %4, i32 0, i32 0 + store i32 %0, ptr %5, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %6 = getelementptr inbounds %struct.array10, ptr %2, i32 0, i32 0 + %7 = getelementptr inbounds %struct.basearray1, ptr %6, i32 0, i32 0 + %8 = load i32, ptr %7, align 4 + ret i32 %8 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_array11([2 x i32] %0) #0 { + %2 = alloca %struct.array11, align 4 + %3 = alloca %struct.array11, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +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, ptr %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basepoint1, ptr %4, i32 0, i32 0 + store i32 %0, ptr %5, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %6 = getelementptr inbounds %struct.point10, ptr %2, i32 0, i32 0 + %7 = getelementptr inbounds %struct.basepoint1, ptr %6, i32 0, i32 0 + %8 = load i32, ptr %7, align 4 + ret i32 %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_point11([2 x i32] %0) #0 { + %2 = alloca %struct.point11, align 4 + %3 = alloca %struct.point11, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_array20([2 x i32] %0) #0 { + %2 = alloca %struct.array20, align 4 + %3 = alloca %struct.array20, align 4 + %4 = getelementptr inbounds %struct.array20, ptr %3, i32 0, i32 0 + %5 = getelementptr inbounds %struct.basearray2, ptr %4, i32 0, i32 0 + store [2 x i32] %0, ptr %5, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %6 = getelementptr inbounds %struct.array20, ptr %2, i32 0, i32 0 + %7 = getelementptr inbounds %struct.basearray2, ptr %6, i32 0, i32 0 + %8 = load [2 x i32], ptr %7, align 4 + ret [2 x i32] %8 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_array21(ptr dead_on_unwind noalias writable sret(%struct.array21) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo_point20([2 x i32] %0) #0 { + %2 = alloca %struct.point20, align 4 + %3 = alloca %struct.point20, align 4 + %4 = getelementptr inbounds %struct.point20, ptr %3, i32 0, i32 0 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.point20, ptr %2, i32 0, i32 0 + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo_point21(ptr dead_on_unwind noalias writable sret(%struct.point21) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/empty.ll b/internal/cabi/_testdata/arch/esp32c3/empty.ll new file mode 100644 index 00000000..6988e762 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/empty.ll @@ -0,0 +1,63 @@ +; ModuleID = '../../wrap/empty.c' +source_filename = "../../wrap/empty.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %1, ptr align 1 %2, i32 0, i1 false) + ret void +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr 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, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, 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, ptr %3, align 4 + %4 = load i32, ptr %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, ptr %4, align 4 + store i32 %1, ptr %5, align 4 + %6 = load i32, ptr %4, align 4 + %7 = load i32, ptr %5, align 4 + %8 = add nsw i32 %6, %7 + ret i32 %8 +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_float32.ll b/internal/cabi/_testdata/arch/esp32c3/struct_float32.ll new file mode 100644 index 00000000..263bc97b --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_float32.ll @@ -0,0 +1,244 @@ +; ModuleID = '../../wrap/struct_float32.c' +source_filename = "../../wrap/struct_float32.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.point1, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 4 + ret i32 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.point3) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.point4) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.point5) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.point6) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.point7) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.point8) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.point10) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.point12) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.point13) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.point14) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.point16) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.point18) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_float64.ll b/internal/cabi/_testdata/arch/esp32c3/struct_float64.ll new file mode 100644 index 00000000..5ebf6606 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_float64.ll @@ -0,0 +1,244 @@ +; ModuleID = '../../wrap/struct_float64.c' +source_filename = "../../wrap/struct_float64.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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, ptr %3, i32 0, i32 0 + store i64 %0, ptr %4, align 8 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %2, ptr align 8 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.point1, ptr %2, i32 0, i32 0 + %6 = load i64, ptr %5, align 8 + ret i64 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(ptr dead_on_unwind noalias writable sret(%struct.point2) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.point3) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.point4) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.point5) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.point6) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.point7) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.point8) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.point10) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.point12) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.point13) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.point14) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.point16) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.point18) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_int16.ll b/internal/cabi/_testdata/arch/esp32c3/struct_int16.ll new file mode 100644 index 00000000..007c8e0b --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_int16.ll @@ -0,0 +1,250 @@ +; ModuleID = '../../wrap/struct_int16.c' +source_filename = "../../wrap/struct_int16.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + %4 = getelementptr inbounds %struct.point1, ptr %3, i32 0, i32 0 + %5 = trunc i32 %0 to i16 + store i16 %5, ptr %4, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 2, i1 false) + %6 = getelementptr inbounds %struct.point1, ptr %2, i32 0, i32 0 + %7 = load i16, ptr %6, align 2 + %8 = zext i16 %7 to i32 + ret i32 %8 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 2 + %3 = alloca %struct.point2, align 2 + store i32 %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 4, i1 false) + %4 = load i32, ptr %2, align 2 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo3([2 x i32] %0) #0 { + %2 = alloca %struct.point3, align 2 + %3 = alloca %struct.point3, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo4([2 x i32] %0) #0 { + %2 = alloca %struct.point4, align 2 + %3 = alloca %struct.point4, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.point5) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.point6) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.point7) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.point8) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.point10) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 22, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.point12) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.point13) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 26, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.point14) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 30, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.point16) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 34, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.point18) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 38, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 40, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_int32.ll b/internal/cabi/_testdata/arch/esp32c3/struct_int32.ll new file mode 100644 index 00000000..73f884a4 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_int32.ll @@ -0,0 +1,244 @@ +; ModuleID = '../../wrap/struct_int32.c' +source_filename = "../../wrap/struct_int32.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 4 + %3 = alloca %struct.point1, align 4 + %4 = getelementptr inbounds %struct.point1, ptr %3, i32 0, i32 0 + store i32 %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %5 = getelementptr inbounds %struct.point1, ptr %2, i32 0, i32 0 + %6 = load i32, ptr %5, align 4 + ret i32 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.point3) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.point4) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.point5) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.point6) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.point7) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.point8) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.point10) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.point12) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.point13) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.point14) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.point16) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.point18) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_int64.ll b/internal/cabi/_testdata/arch/esp32c3/struct_int64.ll new file mode 100644 index 00000000..7758a27b --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_int64.ll @@ -0,0 +1,244 @@ +; ModuleID = '../../wrap/struct_int64.c' +source_filename = "../../wrap/struct_int64.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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, ptr %3, i32 0, i32 0 + store i64 %0, ptr %4, align 8 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %2, ptr align 8 %3, i32 8, i1 false) + %5 = getelementptr inbounds %struct.point1, ptr %2, i32 0, i32 0 + %6 = load i64, ptr %5, align 8 + ret i64 %6 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo2(ptr dead_on_unwind noalias writable sret(%struct.point2) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.point3) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.point4) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.point5) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.point6) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.point7) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.point8) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.point10) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 80, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 88, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.point12) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 96, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.point13) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 104, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.point14) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 112, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 120, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.point16) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 128, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 136, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.point18) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 144, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 152, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 160, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_int8.ll b/internal/cabi/_testdata/arch/esp32c3/struct_int8.ll new file mode 100644 index 00000000..ce552d49 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_int8.ll @@ -0,0 +1,264 @@ +; ModuleID = '../../wrap/struct_int8.c' +source_filename = "../../wrap/struct_int8.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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 i32 @demo1(i32 %0) #0 { + %2 = alloca %struct.point1, align 1 + %3 = alloca %struct.point1, align 1 + %4 = getelementptr inbounds %struct.point1, ptr %3, i32 0, i32 0 + %5 = trunc i32 %0 to i8 + store i8 %5, ptr %4, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 1, i1 false) + %6 = getelementptr inbounds %struct.point1, ptr %2, i32 0, i32 0 + %7 = load i8, ptr %6, align 1 + %8 = zext i8 %7 to i32 + ret i32 %8 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo2(i32 %0) #0 { + %2 = alloca %struct.point2, align 1 + %3 = alloca %struct.point2, align 1 + %4 = alloca i32, align 4 + %5 = trunc i32 %0 to i16 + store i16 %5, ptr %3, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 2, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %4, ptr align 1 %2, i32 2, i1 false) + %6 = load i32, ptr %4, align 4 + ret i32 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo3(i32 %0) #0 { + %2 = alloca %struct.point3, align 1 + %3 = alloca %struct.point3, align 1 + %4 = alloca i32, align 4 + %5 = trunc i32 %0 to i24 + store i24 %5, ptr %3, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 3, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %4, ptr align 1 %2, i32 3, i1 false) + %6 = load i32, ptr %4, align 4 + ret i32 %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo4(i32 %0) #0 { + %2 = alloca %struct.point4, align 1 + %3 = alloca %struct.point4, align 1 + store i32 %0, ptr %3, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 4, i1 false) + %4 = load i32, ptr %2, align 1 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo5([2 x i32] %0) #0 { + %2 = alloca %struct.point5, align 1 + %3 = alloca %struct.point5, align 1 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %3, ptr align 4 %4, i32 5, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 5, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 1 %2, i32 5, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo6([2 x i32] %0) #0 { + %2 = alloca %struct.point6, align 1 + %3 = alloca %struct.point6, align 1 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 1 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo7([2 x i32] %0) #0 { + %2 = alloca %struct.point7, align 1 + %3 = alloca %struct.point7, align 1 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %3, ptr align 4 %4, i32 7, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 7, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 1 %2, i32 7, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo8([2 x i32] %0) #0 { + %2 = alloca %struct.point8, align 1 + %3 = alloca %struct.point8, align 1 + store [2 x i32] %0, ptr %3, align 1 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %2, ptr align 1 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 1 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 9, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.point10) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 11, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.point12) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.point13) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 13, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.point14) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 14, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 15, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.point16) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 17, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.point18) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 18, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 19, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 1 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 1 %0, ptr align 1 %1, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_mixed.ll b/internal/cabi/_testdata/arch/esp32c3/struct_mixed.ll new file mode 100644 index 00000000..2815b2c6 --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_mixed.ll @@ -0,0 +1,11600 @@ +; ModuleID = '../../wrap/struct_mixed.c' +source_filename = "../../wrap/struct_mixed.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-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, ptr } +%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, ptr } +%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, ptr } +%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, ptr } +%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, ptr } +%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, ptr } +%struct.point37 = type { ptr, i8 } +%struct.point38 = type { ptr, i16 } +%struct.point39 = type { ptr, i32 } +%struct.point40 = type { ptr, i64 } +%struct.point41 = type { ptr, float } +%struct.point42 = type { ptr, 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(i32 %0) #0 { + %2 = alloca %struct.point1, align 2 + %3 = alloca %struct.point1, align 2 + store i32 %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 4, i1 false) + %4 = load i32, ptr %2, align 2 + ret i32 %4 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.point3) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo4([2 x i32] %0) #0 { + %2 = alloca %struct.point4, align 4 + %3 = alloca %struct.point4, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.point5) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo6([2 x i32] %0) #0 { + %2 = alloca %struct.point6, align 4 + %3 = alloca %struct.point6, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo7(i32 %0) #0 { + %2 = alloca %struct.point7, align 2 + %3 = alloca %struct.point7, align 2 + store i32 %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 4, i1 false) + %4 = load i32, ptr %2, align 2 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo8([2 x i32] %0) #0 { + %2 = alloca %struct.point8, align 4 + %3 = alloca %struct.point8, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo10([2 x i32] %0) #0 { + %2 = alloca %struct.point10, align 4 + %3 = alloca %struct.point10, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo12([2 x i32] %0) #0 { + %2 = alloca %struct.point12, align 4 + %3 = alloca %struct.point12, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo13([2 x i32] %0) #0 { + %2 = alloca %struct.point13, align 4 + %3 = alloca %struct.point13, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo14([2 x i32] %0) #0 { + %2 = alloca %struct.point14, align 4 + %3 = alloca %struct.point14, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo16([2 x i32] %0) #0 { + %2 = alloca %struct.point16, align 4 + %3 = alloca %struct.point16, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo18([2 x i32] %0) #0 { + %2 = alloca %struct.point18, align 4 + %3 = alloca %struct.point18, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo21(ptr dead_on_unwind noalias writable sret(%struct.point21) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo22(ptr dead_on_unwind noalias writable sret(%struct.point22) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo23(ptr dead_on_unwind noalias writable sret(%struct.point23) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo24(ptr dead_on_unwind noalias writable sret(%struct.point24) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo25([2 x i32] %0) #0 { + %2 = alloca %struct.point25, align 4 + %3 = alloca %struct.point25, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo26([2 x i32] %0) #0 { + %2 = alloca %struct.point26, align 4 + %3 = alloca %struct.point26, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo27([2 x i32] %0) #0 { + %2 = alloca %struct.point27, align 4 + %3 = alloca %struct.point27, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo28(ptr dead_on_unwind noalias writable sret(%struct.point28) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo29(ptr dead_on_unwind noalias writable sret(%struct.point29) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo30([2 x i32] %0) #0 { + %2 = alloca %struct.point30, align 4 + %3 = alloca %struct.point30, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo31(ptr dead_on_unwind noalias writable sret(%struct.point31) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo32(ptr dead_on_unwind noalias writable sret(%struct.point32) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo33(ptr dead_on_unwind noalias writable sret(%struct.point33) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo34(ptr dead_on_unwind noalias writable sret(%struct.point34) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo35(ptr dead_on_unwind noalias writable sret(%struct.point35) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo36(ptr dead_on_unwind noalias writable sret(%struct.point36) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo37([2 x i32] %0) #0 { + %2 = alloca %struct.point37, align 4 + %3 = alloca %struct.point37, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo38([2 x i32] %0) #0 { + %2 = alloca %struct.point38, align 4 + %3 = alloca %struct.point38, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo39([2 x i32] %0) #0 { + %2 = alloca %struct.point39, align 4 + %3 = alloca %struct.point39, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo40(ptr dead_on_unwind noalias writable sret(%struct.point40) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo41([2 x i32] %0) #0 { + %2 = alloca %struct.point41, align 4 + %3 = alloca %struct.point41, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo42(ptr dead_on_unwind noalias writable sret(%struct.point42) align 8 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 8 %0, ptr align 8 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo43([2 x i32] %0) #0 { + %2 = alloca %struct.point43, align 2 + %3 = alloca %struct.point43, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo44([2 x i32] %0) #0 { + %2 = alloca %struct.point44, align 2 + %3 = alloca %struct.point44, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo45([2 x i32] %0) #0 { + %2 = alloca %struct.point45, align 2 + %3 = alloca %struct.point45, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo46([2 x i32] %0) #0 { + %2 = alloca %struct.point46, align 2 + %3 = alloca %struct.point46, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo47(ptr dead_on_unwind noalias writable sret(%struct.point47) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo48(ptr dead_on_unwind noalias writable sret(%struct.point48) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo49([2 x i32] %0) #0 { + %2 = alloca %struct.point49, align 2 + %3 = alloca %struct.point49, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo50(ptr dead_on_unwind noalias writable sret(%struct.point50) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo51(ptr dead_on_unwind noalias writable sret(%struct.point51) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo52(ptr dead_on_unwind noalias writable sret(%struct.point52) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo53(ptr dead_on_unwind noalias writable sret(%struct.point53) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo54(ptr dead_on_unwind noalias writable sret(%struct.point54) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo55(ptr dead_on_unwind noalias writable sret(%struct.point55) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo56(ptr dead_on_unwind noalias writable sret(%struct.point56) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo57(ptr dead_on_unwind noalias writable sret(%struct.point57) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo58(ptr dead_on_unwind noalias writable sret(%struct.point58) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo59(ptr dead_on_unwind noalias writable sret(%struct.point59) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo60(ptr dead_on_unwind noalias writable sret(%struct.point60) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo61(ptr dead_on_unwind noalias writable sret(%struct.point61) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo62(ptr dead_on_unwind noalias writable sret(%struct.point62) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo63(ptr dead_on_unwind noalias writable sret(%struct.point63) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo64([2 x i32] %0) #0 { + %2 = alloca %struct.point64, align 2 + %3 = alloca %struct.point64, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo65([2 x i32] %0) #0 { + %2 = alloca %struct.point65, align 2 + %3 = alloca %struct.point65, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo66([2 x i32] %0) #0 { + %2 = alloca %struct.point66, align 2 + %3 = alloca %struct.point66, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo67(ptr dead_on_unwind noalias writable sret(%struct.point67) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo68(ptr dead_on_unwind noalias writable sret(%struct.point68) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo69(ptr dead_on_unwind noalias writable sret(%struct.point69) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo70([2 x i32] %0) #0 { + %2 = alloca %struct.point70, align 2 + %3 = alloca %struct.point70, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo71(ptr dead_on_unwind noalias writable sret(%struct.point71) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo72(ptr dead_on_unwind noalias writable sret(%struct.point72) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo73(ptr dead_on_unwind noalias writable sret(%struct.point73) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo74(ptr dead_on_unwind noalias writable sret(%struct.point74) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo75(ptr dead_on_unwind noalias writable sret(%struct.point75) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo76(ptr dead_on_unwind noalias writable sret(%struct.point76) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo77(ptr dead_on_unwind noalias writable sret(%struct.point77) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo78(ptr dead_on_unwind noalias writable sret(%struct.point78) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo79(ptr dead_on_unwind noalias writable sret(%struct.point79) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo80(ptr dead_on_unwind noalias writable sret(%struct.point80) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo81(ptr dead_on_unwind noalias writable sret(%struct.point81) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo82(ptr dead_on_unwind noalias writable sret(%struct.point82) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo83(ptr dead_on_unwind noalias writable sret(%struct.point83) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo84(ptr dead_on_unwind noalias writable sret(%struct.point84) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo85([2 x i32] %0) #0 { + %2 = alloca %struct.point85, align 4 + %3 = alloca %struct.point85, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo86(ptr dead_on_unwind noalias writable sret(%struct.point86) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo87(ptr dead_on_unwind noalias writable sret(%struct.point87) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo88(ptr dead_on_unwind noalias writable sret(%struct.point88) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo89(ptr dead_on_unwind noalias writable sret(%struct.point89) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo90(ptr dead_on_unwind noalias writable sret(%struct.point90) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo91(ptr dead_on_unwind noalias writable sret(%struct.point91) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo92(ptr dead_on_unwind noalias writable sret(%struct.point92) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo93(ptr dead_on_unwind noalias writable sret(%struct.point93) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo94(ptr dead_on_unwind noalias writable sret(%struct.point94) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo95(ptr dead_on_unwind noalias writable sret(%struct.point95) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo96(ptr dead_on_unwind noalias writable sret(%struct.point96) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo97(ptr dead_on_unwind noalias writable sret(%struct.point97) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo98(ptr dead_on_unwind noalias writable sret(%struct.point98) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo99(ptr dead_on_unwind noalias writable sret(%struct.point99) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo100(ptr dead_on_unwind noalias writable sret(%struct.point100) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo101(ptr dead_on_unwind noalias writable sret(%struct.point101) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo102(ptr dead_on_unwind noalias writable sret(%struct.point102) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo103(ptr dead_on_unwind noalias writable sret(%struct.point103) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo104(ptr dead_on_unwind noalias writable sret(%struct.point104) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo105(ptr dead_on_unwind noalias writable sret(%struct.point105) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo106([2 x i32] %0) #0 { + %2 = alloca %struct.point106, align 4 + %3 = alloca %struct.point106, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo107(ptr dead_on_unwind noalias writable sret(%struct.point107) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo108(ptr dead_on_unwind noalias writable sret(%struct.point108) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo109(ptr dead_on_unwind noalias writable sret(%struct.point109) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo110(ptr dead_on_unwind noalias writable sret(%struct.point110) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo111(ptr dead_on_unwind noalias writable sret(%struct.point111) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo112(ptr dead_on_unwind noalias writable sret(%struct.point112) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo113(ptr dead_on_unwind noalias writable sret(%struct.point113) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo114(ptr dead_on_unwind noalias writable sret(%struct.point114) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo115(ptr dead_on_unwind noalias writable sret(%struct.point115) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo116(ptr dead_on_unwind noalias writable sret(%struct.point116) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo117(ptr dead_on_unwind noalias writable sret(%struct.point117) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo118(ptr dead_on_unwind noalias writable sret(%struct.point118) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo119(ptr dead_on_unwind noalias writable sret(%struct.point119) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo120(ptr dead_on_unwind noalias writable sret(%struct.point120) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo121(ptr dead_on_unwind noalias writable sret(%struct.point121) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo122(ptr dead_on_unwind noalias writable sret(%struct.point122) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo123(ptr dead_on_unwind noalias writable sret(%struct.point123) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo124(ptr dead_on_unwind noalias writable sret(%struct.point124) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo125(ptr dead_on_unwind noalias writable sret(%struct.point125) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo126(ptr dead_on_unwind noalias writable sret(%struct.point126) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo127(ptr dead_on_unwind noalias writable sret(%struct.point127) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo128(ptr dead_on_unwind noalias writable sret(%struct.point128) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo129(ptr dead_on_unwind noalias writable sret(%struct.point129) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo130(ptr dead_on_unwind noalias writable sret(%struct.point130) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo131(ptr dead_on_unwind noalias writable sret(%struct.point131) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo132(ptr dead_on_unwind noalias writable sret(%struct.point132) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo133(ptr dead_on_unwind noalias writable sret(%struct.point133) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo134(ptr dead_on_unwind noalias writable sret(%struct.point134) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo135(ptr dead_on_unwind noalias writable sret(%struct.point135) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo136(ptr dead_on_unwind noalias writable sret(%struct.point136) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo137(ptr dead_on_unwind noalias writable sret(%struct.point137) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo138(ptr dead_on_unwind noalias writable sret(%struct.point138) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo139(ptr dead_on_unwind noalias writable sret(%struct.point139) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo140(ptr dead_on_unwind noalias writable sret(%struct.point140) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo141(ptr dead_on_unwind noalias writable sret(%struct.point141) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo142(ptr dead_on_unwind noalias writable sret(%struct.point142) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo143(ptr dead_on_unwind noalias writable sret(%struct.point143) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo144(ptr dead_on_unwind noalias writable sret(%struct.point144) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo145(ptr dead_on_unwind noalias writable sret(%struct.point145) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo146(ptr dead_on_unwind noalias writable sret(%struct.point146) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo147(ptr dead_on_unwind noalias writable sret(%struct.point147) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo148(ptr dead_on_unwind noalias writable sret(%struct.point148) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo149(ptr dead_on_unwind noalias writable sret(%struct.point149) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo150(ptr dead_on_unwind noalias writable sret(%struct.point150) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo151(ptr dead_on_unwind noalias writable sret(%struct.point151) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo152(ptr dead_on_unwind noalias writable sret(%struct.point152) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo153(ptr dead_on_unwind noalias writable sret(%struct.point153) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo154(ptr dead_on_unwind noalias writable sret(%struct.point154) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo155(ptr dead_on_unwind noalias writable sret(%struct.point155) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo156(ptr dead_on_unwind noalias writable sret(%struct.point156) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo157(ptr dead_on_unwind noalias writable sret(%struct.point157) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo158(ptr dead_on_unwind noalias writable sret(%struct.point158) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo159(ptr dead_on_unwind noalias writable sret(%struct.point159) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo160(ptr dead_on_unwind noalias writable sret(%struct.point160) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo161(ptr dead_on_unwind noalias writable sret(%struct.point161) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo162(ptr dead_on_unwind noalias writable sret(%struct.point162) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo163(ptr dead_on_unwind noalias writable sret(%struct.point163) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo164(ptr dead_on_unwind noalias writable sret(%struct.point164) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo165(ptr dead_on_unwind noalias writable sret(%struct.point165) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo166(ptr dead_on_unwind noalias writable sret(%struct.point166) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo167(ptr dead_on_unwind noalias writable sret(%struct.point167) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo168(ptr dead_on_unwind noalias writable sret(%struct.point168) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo169(ptr dead_on_unwind noalias writable sret(%struct.point169) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo170(ptr dead_on_unwind noalias writable sret(%struct.point170) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo171(ptr dead_on_unwind noalias writable sret(%struct.point171) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo172(ptr dead_on_unwind noalias writable sret(%struct.point172) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo173(ptr dead_on_unwind noalias writable sret(%struct.point173) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo174(ptr dead_on_unwind noalias writable sret(%struct.point174) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo175(ptr dead_on_unwind noalias writable sret(%struct.point175) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo176(ptr dead_on_unwind noalias writable sret(%struct.point176) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo177(ptr dead_on_unwind noalias writable sret(%struct.point177) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo178(ptr dead_on_unwind noalias writable sret(%struct.point178) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo179(ptr dead_on_unwind noalias writable sret(%struct.point179) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo180(ptr dead_on_unwind noalias writable sret(%struct.point180) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo181(ptr dead_on_unwind noalias writable sret(%struct.point181) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo182(ptr dead_on_unwind noalias writable sret(%struct.point182) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo183(ptr dead_on_unwind noalias writable sret(%struct.point183) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo184(ptr dead_on_unwind noalias writable sret(%struct.point184) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo185(ptr dead_on_unwind noalias writable sret(%struct.point185) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo186(ptr dead_on_unwind noalias writable sret(%struct.point186) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo187(ptr dead_on_unwind noalias writable sret(%struct.point187) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo188(ptr dead_on_unwind noalias writable sret(%struct.point188) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo189(ptr dead_on_unwind noalias writable sret(%struct.point189) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo190(ptr dead_on_unwind noalias writable sret(%struct.point190) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo191(ptr dead_on_unwind noalias writable sret(%struct.point191) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo192(ptr dead_on_unwind noalias writable sret(%struct.point192) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo193(ptr dead_on_unwind noalias writable sret(%struct.point193) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo194(ptr dead_on_unwind noalias writable sret(%struct.point194) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo195(ptr dead_on_unwind noalias writable sret(%struct.point195) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo196(ptr dead_on_unwind noalias writable sret(%struct.point196) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo197(ptr dead_on_unwind noalias writable sret(%struct.point197) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo198(ptr dead_on_unwind noalias writable sret(%struct.point198) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo199(ptr dead_on_unwind noalias writable sret(%struct.point199) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo200(ptr dead_on_unwind noalias writable sret(%struct.point200) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo201(ptr dead_on_unwind noalias writable sret(%struct.point201) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo202(ptr dead_on_unwind noalias writable sret(%struct.point202) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo203(ptr dead_on_unwind noalias writable sret(%struct.point203) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo204(ptr dead_on_unwind noalias writable sret(%struct.point204) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo205(ptr dead_on_unwind noalias writable sret(%struct.point205) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo206(ptr dead_on_unwind noalias writable sret(%struct.point206) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo207(ptr dead_on_unwind noalias writable sret(%struct.point207) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo208(ptr dead_on_unwind noalias writable sret(%struct.point208) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo209(ptr dead_on_unwind noalias writable sret(%struct.point209) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo210(ptr dead_on_unwind noalias writable sret(%struct.point210) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo211(ptr dead_on_unwind noalias writable sret(%struct.point211) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo212(ptr dead_on_unwind noalias writable sret(%struct.point212) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo213(ptr dead_on_unwind noalias writable sret(%struct.point213) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo214(ptr dead_on_unwind noalias writable sret(%struct.point214) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo215(ptr dead_on_unwind noalias writable sret(%struct.point215) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo216(ptr dead_on_unwind noalias writable sret(%struct.point216) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo217(ptr dead_on_unwind noalias writable sret(%struct.point217) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo218(ptr dead_on_unwind noalias writable sret(%struct.point218) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo219(ptr dead_on_unwind noalias writable sret(%struct.point219) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo220(ptr dead_on_unwind noalias writable sret(%struct.point220) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo221(ptr dead_on_unwind noalias writable sret(%struct.point221) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo222(ptr dead_on_unwind noalias writable sret(%struct.point222) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo223(ptr dead_on_unwind noalias writable sret(%struct.point223) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo224(ptr dead_on_unwind noalias writable sret(%struct.point224) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo225(ptr dead_on_unwind noalias writable sret(%struct.point225) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo226(ptr dead_on_unwind noalias writable sret(%struct.point226) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo227(ptr dead_on_unwind noalias writable sret(%struct.point227) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo228(ptr dead_on_unwind noalias writable sret(%struct.point228) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo229(ptr dead_on_unwind noalias writable sret(%struct.point229) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo230(ptr dead_on_unwind noalias writable sret(%struct.point230) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo231(ptr dead_on_unwind noalias writable sret(%struct.point231) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo232(ptr dead_on_unwind noalias writable sret(%struct.point232) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo233(ptr dead_on_unwind noalias writable sret(%struct.point233) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo234(ptr dead_on_unwind noalias writable sret(%struct.point234) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo235(ptr dead_on_unwind noalias writable sret(%struct.point235) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo236(ptr dead_on_unwind noalias writable sret(%struct.point236) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo237(ptr dead_on_unwind noalias writable sret(%struct.point237) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo238(ptr dead_on_unwind noalias writable sret(%struct.point238) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo239(ptr dead_on_unwind noalias writable sret(%struct.point239) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo240(ptr dead_on_unwind noalias writable sret(%struct.point240) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo241(ptr dead_on_unwind noalias writable sret(%struct.point241) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo242(ptr dead_on_unwind noalias writable sret(%struct.point242) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo243(ptr dead_on_unwind noalias writable sret(%struct.point243) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo244(ptr dead_on_unwind noalias writable sret(%struct.point244) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo245(ptr dead_on_unwind noalias writable sret(%struct.point245) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo246(ptr dead_on_unwind noalias writable sret(%struct.point246) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo247(ptr dead_on_unwind noalias writable sret(%struct.point247) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo248(ptr dead_on_unwind noalias writable sret(%struct.point248) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo249(ptr dead_on_unwind noalias writable sret(%struct.point249) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo250(ptr dead_on_unwind noalias writable sret(%struct.point250) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo251(ptr dead_on_unwind noalias writable sret(%struct.point251) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo252(ptr dead_on_unwind noalias writable sret(%struct.point252) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo253(ptr dead_on_unwind noalias writable sret(%struct.point253) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo254(ptr dead_on_unwind noalias writable sret(%struct.point254) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo255(ptr dead_on_unwind noalias writable sret(%struct.point255) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo256(ptr dead_on_unwind noalias writable sret(%struct.point256) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo257(ptr dead_on_unwind noalias writable sret(%struct.point257) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo258(ptr dead_on_unwind noalias writable sret(%struct.point258) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo259(ptr dead_on_unwind noalias writable sret(%struct.point259) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo260(ptr dead_on_unwind noalias writable sret(%struct.point260) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo261(ptr dead_on_unwind noalias writable sret(%struct.point261) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo262(ptr dead_on_unwind noalias writable sret(%struct.point262) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo263(ptr dead_on_unwind noalias writable sret(%struct.point263) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo264(ptr dead_on_unwind noalias writable sret(%struct.point264) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo265(ptr dead_on_unwind noalias writable sret(%struct.point265) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo266(ptr dead_on_unwind noalias writable sret(%struct.point266) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo267(ptr dead_on_unwind noalias writable sret(%struct.point267) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo268(ptr dead_on_unwind noalias writable sret(%struct.point268) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo269(ptr dead_on_unwind noalias writable sret(%struct.point269) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo270(ptr dead_on_unwind noalias writable sret(%struct.point270) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo271(ptr dead_on_unwind noalias writable sret(%struct.point271) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo272(ptr dead_on_unwind noalias writable sret(%struct.point272) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo273(ptr dead_on_unwind noalias writable sret(%struct.point273) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo274(ptr dead_on_unwind noalias writable sret(%struct.point274) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo275(ptr dead_on_unwind noalias writable sret(%struct.point275) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo276(ptr dead_on_unwind noalias writable sret(%struct.point276) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo277(ptr dead_on_unwind noalias writable sret(%struct.point277) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo278(ptr dead_on_unwind noalias writable sret(%struct.point278) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo279(ptr dead_on_unwind noalias writable sret(%struct.point279) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo280(ptr dead_on_unwind noalias writable sret(%struct.point280) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo281(ptr dead_on_unwind noalias writable sret(%struct.point281) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo282(ptr dead_on_unwind noalias writable sret(%struct.point282) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo283(ptr dead_on_unwind noalias writable sret(%struct.point283) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo284(ptr dead_on_unwind noalias writable sret(%struct.point284) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo285(ptr dead_on_unwind noalias writable sret(%struct.point285) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo286(ptr dead_on_unwind noalias writable sret(%struct.point286) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo287(ptr dead_on_unwind noalias writable sret(%struct.point287) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo288(ptr dead_on_unwind noalias writable sret(%struct.point288) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo289(ptr dead_on_unwind noalias writable sret(%struct.point289) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo290(ptr dead_on_unwind noalias writable sret(%struct.point290) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo291(ptr dead_on_unwind noalias writable sret(%struct.point291) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo292(ptr dead_on_unwind noalias writable sret(%struct.point292) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo293(ptr dead_on_unwind noalias writable sret(%struct.point293) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo294(ptr dead_on_unwind noalias writable sret(%struct.point294) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local i32 @demo295(i32 %0) #0 { + %2 = alloca %struct.point295, align 2 + %3 = alloca %struct.point295, align 2 + store i32 %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 4, i1 false) + %4 = load i32, ptr %2, align 2 + ret i32 %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo296([2 x i32] %0) #0 { + %2 = alloca %struct.point296, align 2 + %3 = alloca %struct.point296, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo297([2 x i32] %0) #0 { + %2 = alloca %struct.point297, align 2 + %3 = alloca %struct.point297, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo298([2 x i32] %0) #0 { + %2 = alloca %struct.point298, align 2 + %3 = alloca %struct.point298, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo299(ptr dead_on_unwind noalias writable sret(%struct.point299) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo300(ptr dead_on_unwind noalias writable sret(%struct.point300) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo301([2 x i32] %0) #0 { + %2 = alloca %struct.point301, align 2 + %3 = alloca %struct.point301, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo302([2 x i32] %0) #0 { + %2 = alloca %struct.point302, align 2 + %3 = alloca %struct.point302, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo303([2 x i32] %0) #0 { + %2 = alloca %struct.point303, align 2 + %3 = alloca %struct.point303, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo304(ptr dead_on_unwind noalias writable sret(%struct.point304) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo305(ptr dead_on_unwind noalias writable sret(%struct.point305) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo306([2 x i32] %0) #0 { + %2 = alloca %struct.point306, align 4 + %3 = alloca %struct.point306, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo307(ptr dead_on_unwind noalias writable sret(%struct.point307) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo308(ptr dead_on_unwind noalias writable sret(%struct.point308) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo309(ptr dead_on_unwind noalias writable sret(%struct.point309) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo310(ptr dead_on_unwind noalias writable sret(%struct.point310) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo311([2 x i32] %0) #0 { + %2 = alloca %struct.point311, align 4 + %3 = alloca %struct.point311, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo312(ptr dead_on_unwind noalias writable sret(%struct.point312) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo313(ptr dead_on_unwind noalias writable sret(%struct.point313) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo314(ptr dead_on_unwind noalias writable sret(%struct.point314) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo315(ptr dead_on_unwind noalias writable sret(%struct.point315) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo316([2 x i32] %0) #0 { + %2 = alloca %struct.point316, align 2 + %3 = alloca %struct.point316, align 2 + %4 = alloca [2 x i32], align 4 + %5 = alloca [2 x i32], align 4 + store [2 x i32] %0, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %3, ptr align 4 %4, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 6, i1 false) + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %5, ptr align 2 %2, i32 6, i1 false) + %6 = load [2 x i32], ptr %5, align 4 + ret [2 x i32] %6 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo317([2 x i32] %0) #0 { + %2 = alloca %struct.point317, align 2 + %3 = alloca %struct.point317, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo318([2 x i32] %0) #0 { + %2 = alloca %struct.point318, align 2 + %3 = alloca %struct.point318, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo319(ptr dead_on_unwind noalias writable sret(%struct.point319) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo320(ptr dead_on_unwind noalias writable sret(%struct.point320) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo321(ptr dead_on_unwind noalias writable sret(%struct.point321) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo322([2 x i32] %0) #0 { + %2 = alloca %struct.point322, align 2 + %3 = alloca %struct.point322, align 2 + store [2 x i32] %0, ptr %3, align 2 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %2, ptr align 2 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 2 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo323(ptr dead_on_unwind noalias writable sret(%struct.point323) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo324(ptr dead_on_unwind noalias writable sret(%struct.point324) align 2 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 2 %0, ptr align 2 %1, i32 10, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo325(ptr dead_on_unwind noalias writable sret(%struct.point325) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo326(ptr dead_on_unwind noalias writable sret(%struct.point326) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo327(ptr dead_on_unwind noalias writable sret(%struct.point327) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo328(ptr dead_on_unwind noalias writable sret(%struct.point328) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo329(ptr dead_on_unwind noalias writable sret(%struct.point329) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo330(ptr dead_on_unwind noalias writable sret(%struct.point330) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo331(ptr dead_on_unwind noalias writable sret(%struct.point331) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo332(ptr dead_on_unwind noalias writable sret(%struct.point332) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo333(ptr dead_on_unwind noalias writable sret(%struct.point333) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo334(ptr dead_on_unwind noalias writable sret(%struct.point334) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo335(ptr dead_on_unwind noalias writable sret(%struct.point335) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo336(ptr dead_on_unwind noalias writable sret(%struct.point336) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo337([2 x i32] %0) #0 { + %2 = alloca %struct.point337, align 4 + %3 = alloca %struct.point337, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo338(ptr dead_on_unwind noalias writable sret(%struct.point338) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo339(ptr dead_on_unwind noalias writable sret(%struct.point339) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo340(ptr dead_on_unwind noalias writable sret(%struct.point340) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo341(ptr dead_on_unwind noalias writable sret(%struct.point341) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo342(ptr dead_on_unwind noalias writable sret(%struct.point342) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo343(ptr dead_on_unwind noalias writable sret(%struct.point343) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo344(ptr dead_on_unwind noalias writable sret(%struct.point344) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo345(ptr dead_on_unwind noalias writable sret(%struct.point345) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo346(ptr dead_on_unwind noalias writable sret(%struct.point346) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo347(ptr dead_on_unwind noalias writable sret(%struct.point347) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo348(ptr dead_on_unwind noalias writable sret(%struct.point348) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo349(ptr dead_on_unwind noalias writable sret(%struct.point349) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo350(ptr dead_on_unwind noalias writable sret(%struct.point350) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo351(ptr dead_on_unwind noalias writable sret(%struct.point351) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo352(ptr dead_on_unwind noalias writable sret(%struct.point352) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo353(ptr dead_on_unwind noalias writable sret(%struct.point353) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo354(ptr dead_on_unwind noalias writable sret(%struct.point354) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo355(ptr dead_on_unwind noalias writable sret(%struct.point355) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo356(ptr dead_on_unwind noalias writable sret(%struct.point356) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo357(ptr dead_on_unwind noalias writable sret(%struct.point357) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo358([2 x i32] %0) #0 { + %2 = alloca %struct.point358, align 4 + %3 = alloca %struct.point358, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo359(ptr dead_on_unwind noalias writable sret(%struct.point359) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo360(ptr dead_on_unwind noalias writable sret(%struct.point360) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo361(ptr dead_on_unwind noalias writable sret(%struct.point361) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo362(ptr dead_on_unwind noalias writable sret(%struct.point362) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo363(ptr dead_on_unwind noalias writable sret(%struct.point363) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo364(ptr dead_on_unwind noalias writable sret(%struct.point364) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo365(ptr dead_on_unwind noalias writable sret(%struct.point365) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo366(ptr dead_on_unwind noalias writable sret(%struct.point366) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo367(ptr dead_on_unwind noalias writable sret(%struct.point367) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo368(ptr dead_on_unwind noalias writable sret(%struct.point368) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo369(ptr dead_on_unwind noalias writable sret(%struct.point369) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo370(ptr dead_on_unwind noalias writable sret(%struct.point370) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo371(ptr dead_on_unwind noalias writable sret(%struct.point371) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo372(ptr dead_on_unwind noalias writable sret(%struct.point372) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo373(ptr dead_on_unwind noalias writable sret(%struct.point373) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo374(ptr dead_on_unwind noalias writable sret(%struct.point374) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo375(ptr dead_on_unwind noalias writable sret(%struct.point375) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo376(ptr dead_on_unwind noalias writable sret(%struct.point376) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo377(ptr dead_on_unwind noalias writable sret(%struct.point377) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo378(ptr dead_on_unwind noalias writable sret(%struct.point378) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo379(ptr dead_on_unwind noalias writable sret(%struct.point379) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo380(ptr dead_on_unwind noalias writable sret(%struct.point380) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo381(ptr dead_on_unwind noalias writable sret(%struct.point381) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo382(ptr dead_on_unwind noalias writable sret(%struct.point382) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo383(ptr dead_on_unwind noalias writable sret(%struct.point383) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo384(ptr dead_on_unwind noalias writable sret(%struct.point384) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo385(ptr dead_on_unwind noalias writable sret(%struct.point385) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo386(ptr dead_on_unwind noalias writable sret(%struct.point386) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo387(ptr dead_on_unwind noalias writable sret(%struct.point387) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo388(ptr dead_on_unwind noalias writable sret(%struct.point388) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo389(ptr dead_on_unwind noalias writable sret(%struct.point389) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo390(ptr dead_on_unwind noalias writable sret(%struct.point390) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo391(ptr dead_on_unwind noalias writable sret(%struct.point391) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo392(ptr dead_on_unwind noalias writable sret(%struct.point392) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo393(ptr dead_on_unwind noalias writable sret(%struct.point393) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo394(ptr dead_on_unwind noalias writable sret(%struct.point394) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo395(ptr dead_on_unwind noalias writable sret(%struct.point395) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo396(ptr dead_on_unwind noalias writable sret(%struct.point396) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo397(ptr dead_on_unwind noalias writable sret(%struct.point397) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo398(ptr dead_on_unwind noalias writable sret(%struct.point398) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo399(ptr dead_on_unwind noalias writable sret(%struct.point399) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo400(ptr dead_on_unwind noalias writable sret(%struct.point400) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo401(ptr dead_on_unwind noalias writable sret(%struct.point401) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo402(ptr dead_on_unwind noalias writable sret(%struct.point402) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo403(ptr dead_on_unwind noalias writable sret(%struct.point403) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo404(ptr dead_on_unwind noalias writable sret(%struct.point404) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo405(ptr dead_on_unwind noalias writable sret(%struct.point405) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo406(ptr dead_on_unwind noalias writable sret(%struct.point406) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo407(ptr dead_on_unwind noalias writable sret(%struct.point407) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo408(ptr dead_on_unwind noalias writable sret(%struct.point408) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo409(ptr dead_on_unwind noalias writable sret(%struct.point409) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo410(ptr dead_on_unwind noalias writable sret(%struct.point410) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo411(ptr dead_on_unwind noalias writable sret(%struct.point411) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo412(ptr dead_on_unwind noalias writable sret(%struct.point412) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo413(ptr dead_on_unwind noalias writable sret(%struct.point413) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo414(ptr dead_on_unwind noalias writable sret(%struct.point414) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo415(ptr dead_on_unwind noalias writable sret(%struct.point415) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo416(ptr dead_on_unwind noalias writable sret(%struct.point416) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo417(ptr dead_on_unwind noalias writable sret(%struct.point417) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo418(ptr dead_on_unwind noalias writable sret(%struct.point418) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo419(ptr dead_on_unwind noalias writable sret(%struct.point419) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo420(ptr dead_on_unwind noalias writable sret(%struct.point420) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo421(ptr dead_on_unwind noalias writable sret(%struct.point421) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo422(ptr dead_on_unwind noalias writable sret(%struct.point422) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo423(ptr dead_on_unwind noalias writable sret(%struct.point423) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo424(ptr dead_on_unwind noalias writable sret(%struct.point424) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo425(ptr dead_on_unwind noalias writable sret(%struct.point425) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo426(ptr dead_on_unwind noalias writable sret(%struct.point426) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo427(ptr dead_on_unwind noalias writable sret(%struct.point427) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo428(ptr dead_on_unwind noalias writable sret(%struct.point428) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo429(ptr dead_on_unwind noalias writable sret(%struct.point429) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo430(ptr dead_on_unwind noalias writable sret(%struct.point430) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo431(ptr dead_on_unwind noalias writable sret(%struct.point431) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo432(ptr dead_on_unwind noalias writable sret(%struct.point432) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo433(ptr dead_on_unwind noalias writable sret(%struct.point433) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo434(ptr dead_on_unwind noalias writable sret(%struct.point434) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo435(ptr dead_on_unwind noalias writable sret(%struct.point435) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo436(ptr dead_on_unwind noalias writable sret(%struct.point436) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo437(ptr dead_on_unwind noalias writable sret(%struct.point437) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo438(ptr dead_on_unwind noalias writable sret(%struct.point438) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo439(ptr dead_on_unwind noalias writable sret(%struct.point439) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo440(ptr dead_on_unwind noalias writable sret(%struct.point440) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo441(ptr dead_on_unwind noalias writable sret(%struct.point441) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo442(ptr dead_on_unwind noalias writable sret(%struct.point442) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo443(ptr dead_on_unwind noalias writable sret(%struct.point443) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo444(ptr dead_on_unwind noalias writable sret(%struct.point444) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo445(ptr dead_on_unwind noalias writable sret(%struct.point445) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo446(ptr dead_on_unwind noalias writable sret(%struct.point446) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo447(ptr dead_on_unwind noalias writable sret(%struct.point447) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo448(ptr dead_on_unwind noalias writable sret(%struct.point448) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo449(ptr dead_on_unwind noalias writable sret(%struct.point449) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo450(ptr dead_on_unwind noalias writable sret(%struct.point450) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo451(ptr dead_on_unwind noalias writable sret(%struct.point451) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo452(ptr dead_on_unwind noalias writable sret(%struct.point452) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo453(ptr dead_on_unwind noalias writable sret(%struct.point453) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo454(ptr dead_on_unwind noalias writable sret(%struct.point454) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo455(ptr dead_on_unwind noalias writable sret(%struct.point455) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo456(ptr dead_on_unwind noalias writable sret(%struct.point456) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo457(ptr dead_on_unwind noalias writable sret(%struct.point457) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo458(ptr dead_on_unwind noalias writable sret(%struct.point458) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo459(ptr dead_on_unwind noalias writable sret(%struct.point459) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo460(ptr dead_on_unwind noalias writable sret(%struct.point460) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo461(ptr dead_on_unwind noalias writable sret(%struct.point461) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo462(ptr dead_on_unwind noalias writable sret(%struct.point462) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo463(ptr dead_on_unwind noalias writable sret(%struct.point463) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo464(ptr dead_on_unwind noalias writable sret(%struct.point464) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo465(ptr dead_on_unwind noalias writable sret(%struct.point465) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo466(ptr dead_on_unwind noalias writable sret(%struct.point466) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo467(ptr dead_on_unwind noalias writable sret(%struct.point467) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo468(ptr dead_on_unwind noalias writable sret(%struct.point468) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo469(ptr dead_on_unwind noalias writable sret(%struct.point469) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo470(ptr dead_on_unwind noalias writable sret(%struct.point470) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo471(ptr dead_on_unwind noalias writable sret(%struct.point471) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo472(ptr dead_on_unwind noalias writable sret(%struct.point472) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo473(ptr dead_on_unwind noalias writable sret(%struct.point473) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo474(ptr dead_on_unwind noalias writable sret(%struct.point474) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo475(ptr dead_on_unwind noalias writable sret(%struct.point475) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo476(ptr dead_on_unwind noalias writable sret(%struct.point476) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo477(ptr dead_on_unwind noalias writable sret(%struct.point477) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo478(ptr dead_on_unwind noalias writable sret(%struct.point478) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo479(ptr dead_on_unwind noalias writable sret(%struct.point479) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo480(ptr dead_on_unwind noalias writable sret(%struct.point480) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo481(ptr dead_on_unwind noalias writable sret(%struct.point481) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo482(ptr dead_on_unwind noalias writable sret(%struct.point482) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo483(ptr dead_on_unwind noalias writable sret(%struct.point483) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo484(ptr dead_on_unwind noalias writable sret(%struct.point484) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo485(ptr dead_on_unwind noalias writable sret(%struct.point485) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo486(ptr dead_on_unwind noalias writable sret(%struct.point486) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo487(ptr dead_on_unwind noalias writable sret(%struct.point487) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo488(ptr dead_on_unwind noalias writable sret(%struct.point488) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo489(ptr dead_on_unwind noalias writable sret(%struct.point489) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo490(ptr dead_on_unwind noalias writable sret(%struct.point490) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo491(ptr dead_on_unwind noalias writable sret(%struct.point491) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo492(ptr dead_on_unwind noalias writable sret(%struct.point492) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo493(ptr dead_on_unwind noalias writable sret(%struct.point493) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo494(ptr dead_on_unwind noalias writable sret(%struct.point494) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo495(ptr dead_on_unwind noalias writable sret(%struct.point495) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo496(ptr dead_on_unwind noalias writable sret(%struct.point496) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo497(ptr dead_on_unwind noalias writable sret(%struct.point497) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo498(ptr dead_on_unwind noalias writable sret(%struct.point498) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo499(ptr dead_on_unwind noalias writable sret(%struct.point499) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo500(ptr dead_on_unwind noalias writable sret(%struct.point500) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo501(ptr dead_on_unwind noalias writable sret(%struct.point501) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo502(ptr dead_on_unwind noalias writable sret(%struct.point502) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo503(ptr dead_on_unwind noalias writable sret(%struct.point503) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo504(ptr dead_on_unwind noalias writable sret(%struct.point504) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo505(ptr dead_on_unwind noalias writable sret(%struct.point505) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo506(ptr dead_on_unwind noalias writable sret(%struct.point506) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo507(ptr dead_on_unwind noalias writable sret(%struct.point507) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo508(ptr dead_on_unwind noalias writable sret(%struct.point508) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo509(ptr dead_on_unwind noalias writable sret(%struct.point509) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo510(ptr dead_on_unwind noalias writable sret(%struct.point510) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo511(ptr dead_on_unwind noalias writable sret(%struct.point511) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo512(ptr dead_on_unwind noalias writable sret(%struct.point512) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo513(ptr dead_on_unwind noalias writable sret(%struct.point513) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo514(ptr dead_on_unwind noalias writable sret(%struct.point514) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo515(ptr dead_on_unwind noalias writable sret(%struct.point515) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo516(ptr dead_on_unwind noalias writable sret(%struct.point516) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo517(ptr dead_on_unwind noalias writable sret(%struct.point517) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo518(ptr dead_on_unwind noalias writable sret(%struct.point518) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo519(ptr dead_on_unwind noalias writable sret(%struct.point519) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo520(ptr dead_on_unwind noalias writable sret(%struct.point520) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo521(ptr dead_on_unwind noalias writable sret(%struct.point521) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo522(ptr dead_on_unwind noalias writable sret(%struct.point522) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo523(ptr dead_on_unwind noalias writable sret(%struct.point523) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo524(ptr dead_on_unwind noalias writable sret(%struct.point524) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo525(ptr dead_on_unwind noalias writable sret(%struct.point525) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo526(ptr dead_on_unwind noalias writable sret(%struct.point526) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo527(ptr dead_on_unwind noalias writable sret(%struct.point527) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo528(ptr dead_on_unwind noalias writable sret(%struct.point528) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo529(ptr dead_on_unwind noalias writable sret(%struct.point529) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo530(ptr dead_on_unwind noalias writable sret(%struct.point530) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo531(ptr dead_on_unwind noalias writable sret(%struct.point531) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo532(ptr dead_on_unwind noalias writable sret(%struct.point532) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo533(ptr dead_on_unwind noalias writable sret(%struct.point533) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo534(ptr dead_on_unwind noalias writable sret(%struct.point534) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo535(ptr dead_on_unwind noalias writable sret(%struct.point535) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo536(ptr dead_on_unwind noalias writable sret(%struct.point536) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo537(ptr dead_on_unwind noalias writable sret(%struct.point537) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo538(ptr dead_on_unwind noalias writable sret(%struct.point538) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo539(ptr dead_on_unwind noalias writable sret(%struct.point539) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo540(ptr dead_on_unwind noalias writable sret(%struct.point540) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo541(ptr dead_on_unwind noalias writable sret(%struct.point541) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo542(ptr dead_on_unwind noalias writable sret(%struct.point542) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo543(ptr dead_on_unwind noalias writable sret(%struct.point543) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo544(ptr dead_on_unwind noalias writable sret(%struct.point544) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo545(ptr dead_on_unwind noalias writable sret(%struct.point545) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo546(ptr dead_on_unwind noalias writable sret(%struct.point546) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo547([2 x i32] %0) #0 { + %2 = alloca %struct.point547, align 4 + %3 = alloca %struct.point547, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo548([2 x i32] %0) #0 { + %2 = alloca %struct.point548, align 4 + %3 = alloca %struct.point548, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo549([2 x i32] %0) #0 { + %2 = alloca %struct.point549, align 4 + %3 = alloca %struct.point549, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo550(ptr dead_on_unwind noalias writable sret(%struct.point550) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo551(ptr dead_on_unwind noalias writable sret(%struct.point551) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo552(ptr dead_on_unwind noalias writable sret(%struct.point552) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo553([2 x i32] %0) #0 { + %2 = alloca %struct.point553, align 4 + %3 = alloca %struct.point553, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo554(ptr dead_on_unwind noalias writable sret(%struct.point554) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo555(ptr dead_on_unwind noalias writable sret(%struct.point555) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo556(ptr dead_on_unwind noalias writable sret(%struct.point556) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo557(ptr dead_on_unwind noalias writable sret(%struct.point557) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo558(ptr dead_on_unwind noalias writable sret(%struct.point558) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo559(ptr dead_on_unwind noalias writable sret(%struct.point559) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo560(ptr dead_on_unwind noalias writable sret(%struct.point560) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo561(ptr dead_on_unwind noalias writable sret(%struct.point561) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo562(ptr dead_on_unwind noalias writable sret(%struct.point562) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo563(ptr dead_on_unwind noalias writable sret(%struct.point563) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo564(ptr dead_on_unwind noalias writable sret(%struct.point564) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo565(ptr dead_on_unwind noalias writable sret(%struct.point565) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo566(ptr dead_on_unwind noalias writable sret(%struct.point566) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo567(ptr dead_on_unwind noalias writable sret(%struct.point567) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo568([2 x i32] %0) #0 { + %2 = alloca %struct.point568, align 4 + %3 = alloca %struct.point568, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo569(ptr dead_on_unwind noalias writable sret(%struct.point569) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo570(ptr dead_on_unwind noalias writable sret(%struct.point570) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo571(ptr dead_on_unwind noalias writable sret(%struct.point571) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo572(ptr dead_on_unwind noalias writable sret(%struct.point572) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo573(ptr dead_on_unwind noalias writable sret(%struct.point573) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo574(ptr dead_on_unwind noalias writable sret(%struct.point574) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo575(ptr dead_on_unwind noalias writable sret(%struct.point575) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo576(ptr dead_on_unwind noalias writable sret(%struct.point576) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo577(ptr dead_on_unwind noalias writable sret(%struct.point577) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo578(ptr dead_on_unwind noalias writable sret(%struct.point578) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo579(ptr dead_on_unwind noalias writable sret(%struct.point579) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo580(ptr dead_on_unwind noalias writable sret(%struct.point580) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo581(ptr dead_on_unwind noalias writable sret(%struct.point581) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo582(ptr dead_on_unwind noalias writable sret(%struct.point582) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo583(ptr dead_on_unwind noalias writable sret(%struct.point583) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo584(ptr dead_on_unwind noalias writable sret(%struct.point584) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo585(ptr dead_on_unwind noalias writable sret(%struct.point585) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo586(ptr dead_on_unwind noalias writable sret(%struct.point586) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo587(ptr dead_on_unwind noalias writable sret(%struct.point587) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo588(ptr dead_on_unwind noalias writable sret(%struct.point588) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo589(ptr dead_on_unwind noalias writable sret(%struct.point589) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo590(ptr dead_on_unwind noalias writable sret(%struct.point590) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo591(ptr dead_on_unwind noalias writable sret(%struct.point591) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo592(ptr dead_on_unwind noalias writable sret(%struct.point592) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo593(ptr dead_on_unwind noalias writable sret(%struct.point593) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo594(ptr dead_on_unwind noalias writable sret(%struct.point594) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo595(ptr dead_on_unwind noalias writable sret(%struct.point595) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo596(ptr dead_on_unwind noalias writable sret(%struct.point596) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo597(ptr dead_on_unwind noalias writable sret(%struct.point597) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo598(ptr dead_on_unwind noalias writable sret(%struct.point598) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo599(ptr dead_on_unwind noalias writable sret(%struct.point599) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo600(ptr dead_on_unwind noalias writable sret(%struct.point600) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo601(ptr dead_on_unwind noalias writable sret(%struct.point601) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo602(ptr dead_on_unwind noalias writable sret(%struct.point602) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo603(ptr dead_on_unwind noalias writable sret(%struct.point603) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo604(ptr dead_on_unwind noalias writable sret(%struct.point604) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo605(ptr dead_on_unwind noalias writable sret(%struct.point605) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo606(ptr dead_on_unwind noalias writable sret(%struct.point606) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo607(ptr dead_on_unwind noalias writable sret(%struct.point607) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo608(ptr dead_on_unwind noalias writable sret(%struct.point608) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo609(ptr dead_on_unwind noalias writable sret(%struct.point609) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo610(ptr dead_on_unwind noalias writable sret(%struct.point610) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo611(ptr dead_on_unwind noalias writable sret(%struct.point611) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo612(ptr dead_on_unwind noalias writable sret(%struct.point612) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo613(ptr dead_on_unwind noalias writable sret(%struct.point613) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo614(ptr dead_on_unwind noalias writable sret(%struct.point614) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo615(ptr dead_on_unwind noalias writable sret(%struct.point615) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo616(ptr dead_on_unwind noalias writable sret(%struct.point616) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo617(ptr dead_on_unwind noalias writable sret(%struct.point617) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo618(ptr dead_on_unwind noalias writable sret(%struct.point618) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo619(ptr dead_on_unwind noalias writable sret(%struct.point619) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo620(ptr dead_on_unwind noalias writable sret(%struct.point620) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo621(ptr dead_on_unwind noalias writable sret(%struct.point621) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo622(ptr dead_on_unwind noalias writable sret(%struct.point622) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo623(ptr dead_on_unwind noalias writable sret(%struct.point623) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo624(ptr dead_on_unwind noalias writable sret(%struct.point624) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo625(ptr dead_on_unwind noalias writable sret(%struct.point625) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo626(ptr dead_on_unwind noalias writable sret(%struct.point626) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo627(ptr dead_on_unwind noalias writable sret(%struct.point627) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo628(ptr dead_on_unwind noalias writable sret(%struct.point628) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo629(ptr dead_on_unwind noalias writable sret(%struct.point629) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo630(ptr dead_on_unwind noalias writable sret(%struct.point630) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo631([2 x i32] %0) #0 { + %2 = alloca %struct.point631, align 4 + %3 = alloca %struct.point631, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo632([2 x i32] %0) #0 { + %2 = alloca %struct.point632, align 4 + %3 = alloca %struct.point632, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo633(ptr dead_on_unwind noalias writable sret(%struct.point633) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo634(ptr dead_on_unwind noalias writable sret(%struct.point634) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo635(ptr dead_on_unwind noalias writable sret(%struct.point635) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo636(ptr dead_on_unwind noalias writable sret(%struct.point636) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo637(ptr dead_on_unwind noalias writable sret(%struct.point637) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo638(ptr dead_on_unwind noalias writable sret(%struct.point638) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo639(ptr dead_on_unwind noalias writable sret(%struct.point639) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo640(ptr dead_on_unwind noalias writable sret(%struct.point640) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo641(ptr dead_on_unwind noalias writable sret(%struct.point641) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo642(ptr dead_on_unwind noalias writable sret(%struct.point642) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo643(ptr dead_on_unwind noalias writable sret(%struct.point643) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo644(ptr dead_on_unwind noalias writable sret(%struct.point644) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo645(ptr dead_on_unwind noalias writable sret(%struct.point645) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo646(ptr dead_on_unwind noalias writable sret(%struct.point646) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo647(ptr dead_on_unwind noalias writable sret(%struct.point647) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo648(ptr dead_on_unwind noalias writable sret(%struct.point648) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo649(ptr dead_on_unwind noalias writable sret(%struct.point649) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo650(ptr dead_on_unwind noalias writable sret(%struct.point650) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo651(ptr dead_on_unwind noalias writable sret(%struct.point651) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo652([2 x i32] %0) #0 { + %2 = alloca %struct.point652, align 4 + %3 = alloca %struct.point652, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo653(ptr dead_on_unwind noalias writable sret(%struct.point653) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo654(ptr dead_on_unwind noalias writable sret(%struct.point654) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo655(ptr dead_on_unwind noalias writable sret(%struct.point655) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo656(ptr dead_on_unwind noalias writable sret(%struct.point656) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo657(ptr dead_on_unwind noalias writable sret(%struct.point657) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo658(ptr dead_on_unwind noalias writable sret(%struct.point658) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo659(ptr dead_on_unwind noalias writable sret(%struct.point659) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo660(ptr dead_on_unwind noalias writable sret(%struct.point660) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo661(ptr dead_on_unwind noalias writable sret(%struct.point661) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo662(ptr dead_on_unwind noalias writable sret(%struct.point662) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo663(ptr dead_on_unwind noalias writable sret(%struct.point663) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo664(ptr dead_on_unwind noalias writable sret(%struct.point664) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo665(ptr dead_on_unwind noalias writable sret(%struct.point665) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo666(ptr dead_on_unwind noalias writable sret(%struct.point666) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo667(ptr dead_on_unwind noalias writable sret(%struct.point667) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo668(ptr dead_on_unwind noalias writable sret(%struct.point668) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo669(ptr dead_on_unwind noalias writable sret(%struct.point669) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo670(ptr dead_on_unwind noalias writable sret(%struct.point670) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo671(ptr dead_on_unwind noalias writable sret(%struct.point671) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo672(ptr dead_on_unwind noalias writable sret(%struct.point672) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo673(ptr dead_on_unwind noalias writable sret(%struct.point673) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo674(ptr dead_on_unwind noalias writable sret(%struct.point674) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo675(ptr dead_on_unwind noalias writable sret(%struct.point675) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo676(ptr dead_on_unwind noalias writable sret(%struct.point676) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo677(ptr dead_on_unwind noalias writable sret(%struct.point677) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo678(ptr dead_on_unwind noalias writable sret(%struct.point678) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo679(ptr dead_on_unwind noalias writable sret(%struct.point679) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo680(ptr dead_on_unwind noalias writable sret(%struct.point680) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo681(ptr dead_on_unwind noalias writable sret(%struct.point681) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo682(ptr dead_on_unwind noalias writable sret(%struct.point682) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo683(ptr dead_on_unwind noalias writable sret(%struct.point683) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo684(ptr dead_on_unwind noalias writable sret(%struct.point684) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo685(ptr dead_on_unwind noalias writable sret(%struct.point685) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo686(ptr dead_on_unwind noalias writable sret(%struct.point686) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo687(ptr dead_on_unwind noalias writable sret(%struct.point687) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo688(ptr dead_on_unwind noalias writable sret(%struct.point688) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo689(ptr dead_on_unwind noalias writable sret(%struct.point689) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo690(ptr dead_on_unwind noalias writable sret(%struct.point690) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo691(ptr dead_on_unwind noalias writable sret(%struct.point691) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo692(ptr dead_on_unwind noalias writable sret(%struct.point692) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo693(ptr dead_on_unwind noalias writable sret(%struct.point693) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo694(ptr dead_on_unwind noalias writable sret(%struct.point694) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo695(ptr dead_on_unwind noalias writable sret(%struct.point695) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo696(ptr dead_on_unwind noalias writable sret(%struct.point696) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo697(ptr dead_on_unwind noalias writable sret(%struct.point697) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo698(ptr dead_on_unwind noalias writable sret(%struct.point698) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo699(ptr dead_on_unwind noalias writable sret(%struct.point699) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo700(ptr dead_on_unwind noalias writable sret(%struct.point700) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo701(ptr dead_on_unwind noalias writable sret(%struct.point701) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo702(ptr dead_on_unwind noalias writable sret(%struct.point702) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo703(ptr dead_on_unwind noalias writable sret(%struct.point703) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo704(ptr dead_on_unwind noalias writable sret(%struct.point704) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo705(ptr dead_on_unwind noalias writable sret(%struct.point705) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo706(ptr dead_on_unwind noalias writable sret(%struct.point706) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo707(ptr dead_on_unwind noalias writable sret(%struct.point707) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo708(ptr dead_on_unwind noalias writable sret(%struct.point708) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo709(ptr dead_on_unwind noalias writable sret(%struct.point709) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo710(ptr dead_on_unwind noalias writable sret(%struct.point710) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo711(ptr dead_on_unwind noalias writable sret(%struct.point711) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo712(ptr dead_on_unwind noalias writable sret(%struct.point712) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo713(ptr dead_on_unwind noalias writable sret(%struct.point713) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo714(ptr dead_on_unwind noalias writable sret(%struct.point714) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo715(ptr dead_on_unwind noalias writable sret(%struct.point715) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo716(ptr dead_on_unwind noalias writable sret(%struct.point716) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo717(ptr dead_on_unwind noalias writable sret(%struct.point717) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo718(ptr dead_on_unwind noalias writable sret(%struct.point718) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo719(ptr dead_on_unwind noalias writable sret(%struct.point719) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo720(ptr dead_on_unwind noalias writable sret(%struct.point720) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo721(ptr dead_on_unwind noalias writable sret(%struct.point721) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo722(ptr dead_on_unwind noalias writable sret(%struct.point722) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo723(ptr dead_on_unwind noalias writable sret(%struct.point723) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo724(ptr dead_on_unwind noalias writable sret(%struct.point724) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo725(ptr dead_on_unwind noalias writable sret(%struct.point725) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo726(ptr dead_on_unwind noalias writable sret(%struct.point726) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo727(ptr dead_on_unwind noalias writable sret(%struct.point727) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo728(ptr dead_on_unwind noalias writable sret(%struct.point728) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo729(ptr dead_on_unwind noalias writable sret(%struct.point729) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo730(ptr dead_on_unwind noalias writable sret(%struct.point730) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo731(ptr dead_on_unwind noalias writable sret(%struct.point731) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo732(ptr dead_on_unwind noalias writable sret(%struct.point732) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo733(ptr dead_on_unwind noalias writable sret(%struct.point733) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo734(ptr dead_on_unwind noalias writable sret(%struct.point734) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo735(ptr dead_on_unwind noalias writable sret(%struct.point735) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo736(ptr dead_on_unwind noalias writable sret(%struct.point736) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo737(ptr dead_on_unwind noalias writable sret(%struct.point737) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo738(ptr dead_on_unwind noalias writable sret(%struct.point738) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo739(ptr dead_on_unwind noalias writable sret(%struct.point739) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo740(ptr dead_on_unwind noalias writable sret(%struct.point740) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo741(ptr dead_on_unwind noalias writable sret(%struct.point741) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo742(ptr dead_on_unwind noalias writable sret(%struct.point742) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo743(ptr dead_on_unwind noalias writable sret(%struct.point743) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo744(ptr dead_on_unwind noalias writable sret(%struct.point744) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo745(ptr dead_on_unwind noalias writable sret(%struct.point745) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo746(ptr dead_on_unwind noalias writable sret(%struct.point746) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo747(ptr dead_on_unwind noalias writable sret(%struct.point747) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo748(ptr dead_on_unwind noalias writable sret(%struct.point748) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo749(ptr dead_on_unwind noalias writable sret(%struct.point749) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo750(ptr dead_on_unwind noalias writable sret(%struct.point750) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo751(ptr dead_on_unwind noalias writable sret(%struct.point751) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo752(ptr dead_on_unwind noalias writable sret(%struct.point752) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo753(ptr dead_on_unwind noalias writable sret(%struct.point753) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo754(ptr dead_on_unwind noalias writable sret(%struct.point754) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo755(ptr dead_on_unwind noalias writable sret(%struct.point755) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo756(ptr dead_on_unwind noalias writable sret(%struct.point756) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo757(ptr dead_on_unwind noalias writable sret(%struct.point757) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo758(ptr dead_on_unwind noalias writable sret(%struct.point758) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo759(ptr dead_on_unwind noalias writable sret(%struct.point759) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo760(ptr dead_on_unwind noalias writable sret(%struct.point760) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo761(ptr dead_on_unwind noalias writable sret(%struct.point761) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo762(ptr dead_on_unwind noalias writable sret(%struct.point762) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo763(ptr dead_on_unwind noalias writable sret(%struct.point763) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo764(ptr dead_on_unwind noalias writable sret(%struct.point764) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo765(ptr dead_on_unwind noalias writable sret(%struct.point765) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo766(ptr dead_on_unwind noalias writable sret(%struct.point766) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo767(ptr dead_on_unwind noalias writable sret(%struct.point767) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo768(ptr dead_on_unwind noalias writable sret(%struct.point768) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo769(ptr dead_on_unwind noalias writable sret(%struct.point769) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo770(ptr dead_on_unwind noalias writable sret(%struct.point770) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo771(ptr dead_on_unwind noalias writable sret(%struct.point771) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo772(ptr dead_on_unwind noalias writable sret(%struct.point772) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo773(ptr dead_on_unwind noalias writable sret(%struct.point773) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo774(ptr dead_on_unwind noalias writable sret(%struct.point774) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo775(ptr dead_on_unwind noalias writable sret(%struct.point775) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo776(ptr dead_on_unwind noalias writable sret(%struct.point776) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo777(ptr dead_on_unwind noalias writable sret(%struct.point777) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo778(ptr dead_on_unwind noalias writable sret(%struct.point778) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo779(ptr dead_on_unwind noalias writable sret(%struct.point779) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo780(ptr dead_on_unwind noalias writable sret(%struct.point780) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo781(ptr dead_on_unwind noalias writable sret(%struct.point781) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo782(ptr dead_on_unwind noalias writable sret(%struct.point782) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo783(ptr dead_on_unwind noalias writable sret(%struct.point783) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo784(ptr dead_on_unwind noalias writable sret(%struct.point784) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo785(ptr dead_on_unwind noalias writable sret(%struct.point785) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo786(ptr dead_on_unwind noalias writable sret(%struct.point786) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo787(ptr dead_on_unwind noalias writable sret(%struct.point787) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo788(ptr dead_on_unwind noalias writable sret(%struct.point788) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo789(ptr dead_on_unwind noalias writable sret(%struct.point789) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo790(ptr dead_on_unwind noalias writable sret(%struct.point790) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo791(ptr dead_on_unwind noalias writable sret(%struct.point791) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo792(ptr dead_on_unwind noalias writable sret(%struct.point792) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo793(ptr dead_on_unwind noalias writable sret(%struct.point793) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo794(ptr dead_on_unwind noalias writable sret(%struct.point794) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo795(ptr dead_on_unwind noalias writable sret(%struct.point795) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo796(ptr dead_on_unwind noalias writable sret(%struct.point796) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo797(ptr dead_on_unwind noalias writable sret(%struct.point797) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo798(ptr dead_on_unwind noalias writable sret(%struct.point798) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo799([2 x i32] %0) #0 { + %2 = alloca %struct.point799, align 4 + %3 = alloca %struct.point799, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo800([2 x i32] %0) #0 { + %2 = alloca %struct.point800, align 4 + %3 = alloca %struct.point800, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo801([2 x i32] %0) #0 { + %2 = alloca %struct.point801, align 4 + %3 = alloca %struct.point801, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo802(ptr dead_on_unwind noalias writable sret(%struct.point802) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo803(ptr dead_on_unwind noalias writable sret(%struct.point803) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo804(ptr dead_on_unwind noalias writable sret(%struct.point804) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo805([2 x i32] %0) #0 { + %2 = alloca %struct.point805, align 4 + %3 = alloca %struct.point805, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo806(ptr dead_on_unwind noalias writable sret(%struct.point806) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo807(ptr dead_on_unwind noalias writable sret(%struct.point807) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo808(ptr dead_on_unwind noalias writable sret(%struct.point808) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo809(ptr dead_on_unwind noalias writable sret(%struct.point809) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo810(ptr dead_on_unwind noalias writable sret(%struct.point810) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo811(ptr dead_on_unwind noalias writable sret(%struct.point811) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo812(ptr dead_on_unwind noalias writable sret(%struct.point812) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo813(ptr dead_on_unwind noalias writable sret(%struct.point813) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo814(ptr dead_on_unwind noalias writable sret(%struct.point814) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo815(ptr dead_on_unwind noalias writable sret(%struct.point815) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo816(ptr dead_on_unwind noalias writable sret(%struct.point816) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo817(ptr dead_on_unwind noalias writable sret(%struct.point817) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo818(ptr dead_on_unwind noalias writable sret(%struct.point818) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo819(ptr dead_on_unwind noalias writable sret(%struct.point819) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo820([2 x i32] %0) #0 { + %2 = alloca %struct.point820, align 4 + %3 = alloca %struct.point820, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo821(ptr dead_on_unwind noalias writable sret(%struct.point821) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo822(ptr dead_on_unwind noalias writable sret(%struct.point822) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo823(ptr dead_on_unwind noalias writable sret(%struct.point823) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo824(ptr dead_on_unwind noalias writable sret(%struct.point824) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo825(ptr dead_on_unwind noalias writable sret(%struct.point825) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo826(ptr dead_on_unwind noalias writable sret(%struct.point826) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo827(ptr dead_on_unwind noalias writable sret(%struct.point827) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo828(ptr dead_on_unwind noalias writable sret(%struct.point828) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo829(ptr dead_on_unwind noalias writable sret(%struct.point829) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo830(ptr dead_on_unwind noalias writable sret(%struct.point830) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo831(ptr dead_on_unwind noalias writable sret(%struct.point831) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo832(ptr dead_on_unwind noalias writable sret(%struct.point832) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo833(ptr dead_on_unwind noalias writable sret(%struct.point833) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo834(ptr dead_on_unwind noalias writable sret(%struct.point834) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo835(ptr dead_on_unwind noalias writable sret(%struct.point835) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo836(ptr dead_on_unwind noalias writable sret(%struct.point836) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo837(ptr dead_on_unwind noalias writable sret(%struct.point837) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo838(ptr dead_on_unwind noalias writable sret(%struct.point838) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo839(ptr dead_on_unwind noalias writable sret(%struct.point839) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo840(ptr dead_on_unwind noalias writable sret(%struct.point840) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo841(ptr dead_on_unwind noalias writable sret(%struct.point841) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo842(ptr dead_on_unwind noalias writable sret(%struct.point842) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo843(ptr dead_on_unwind noalias writable sret(%struct.point843) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo844(ptr dead_on_unwind noalias writable sret(%struct.point844) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo845(ptr dead_on_unwind noalias writable sret(%struct.point845) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo846(ptr dead_on_unwind noalias writable sret(%struct.point846) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo847(ptr dead_on_unwind noalias writable sret(%struct.point847) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo848(ptr dead_on_unwind noalias writable sret(%struct.point848) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo849(ptr dead_on_unwind noalias writable sret(%struct.point849) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo850(ptr dead_on_unwind noalias writable sret(%struct.point850) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo851(ptr dead_on_unwind noalias writable sret(%struct.point851) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo852(ptr dead_on_unwind noalias writable sret(%struct.point852) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo853(ptr dead_on_unwind noalias writable sret(%struct.point853) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo854(ptr dead_on_unwind noalias writable sret(%struct.point854) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo855(ptr dead_on_unwind noalias writable sret(%struct.point855) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo856(ptr dead_on_unwind noalias writable sret(%struct.point856) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo857(ptr dead_on_unwind noalias writable sret(%struct.point857) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo858(ptr dead_on_unwind noalias writable sret(%struct.point858) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo859(ptr dead_on_unwind noalias writable sret(%struct.point859) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo860(ptr dead_on_unwind noalias writable sret(%struct.point860) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo861(ptr dead_on_unwind noalias writable sret(%struct.point861) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo862(ptr dead_on_unwind noalias writable sret(%struct.point862) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo863(ptr dead_on_unwind noalias writable sret(%struct.point863) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo864(ptr dead_on_unwind noalias writable sret(%struct.point864) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo865(ptr dead_on_unwind noalias writable sret(%struct.point865) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo866(ptr dead_on_unwind noalias writable sret(%struct.point866) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo867(ptr dead_on_unwind noalias writable sret(%struct.point867) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo868(ptr dead_on_unwind noalias writable sret(%struct.point868) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo869(ptr dead_on_unwind noalias writable sret(%struct.point869) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo870(ptr dead_on_unwind noalias writable sret(%struct.point870) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo871(ptr dead_on_unwind noalias writable sret(%struct.point871) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo872(ptr dead_on_unwind noalias writable sret(%struct.point872) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo873(ptr dead_on_unwind noalias writable sret(%struct.point873) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo874(ptr dead_on_unwind noalias writable sret(%struct.point874) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo875(ptr dead_on_unwind noalias writable sret(%struct.point875) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo876(ptr dead_on_unwind noalias writable sret(%struct.point876) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo877(ptr dead_on_unwind noalias writable sret(%struct.point877) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo878(ptr dead_on_unwind noalias writable sret(%struct.point878) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo879(ptr dead_on_unwind noalias writable sret(%struct.point879) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo880(ptr dead_on_unwind noalias writable sret(%struct.point880) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo881(ptr dead_on_unwind noalias writable sret(%struct.point881) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo882(ptr dead_on_unwind noalias writable sret(%struct.point882) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo883([2 x i32] %0) #0 { + %2 = alloca %struct.point883, align 4 + %3 = alloca %struct.point883, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo884([2 x i32] %0) #0 { + %2 = alloca %struct.point884, align 4 + %3 = alloca %struct.point884, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo885(ptr dead_on_unwind noalias writable sret(%struct.point885) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo886(ptr dead_on_unwind noalias writable sret(%struct.point886) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo887(ptr dead_on_unwind noalias writable sret(%struct.point887) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo888(ptr dead_on_unwind noalias writable sret(%struct.point888) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo889(ptr dead_on_unwind noalias writable sret(%struct.point889) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo890(ptr dead_on_unwind noalias writable sret(%struct.point890) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo891(ptr dead_on_unwind noalias writable sret(%struct.point891) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo892(ptr dead_on_unwind noalias writable sret(%struct.point892) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo893(ptr dead_on_unwind noalias writable sret(%struct.point893) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo894(ptr dead_on_unwind noalias writable sret(%struct.point894) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo895(ptr dead_on_unwind noalias writable sret(%struct.point895) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo896(ptr dead_on_unwind noalias writable sret(%struct.point896) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo897(ptr dead_on_unwind noalias writable sret(%struct.point897) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo898(ptr dead_on_unwind noalias writable sret(%struct.point898) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo899(ptr dead_on_unwind noalias writable sret(%struct.point899) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo900(ptr dead_on_unwind noalias writable sret(%struct.point900) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo901(ptr dead_on_unwind noalias writable sret(%struct.point901) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo902(ptr dead_on_unwind noalias writable sret(%struct.point902) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo903(ptr dead_on_unwind noalias writable sret(%struct.point903) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo904([2 x i32] %0) #0 { + %2 = alloca %struct.point904, align 4 + %3 = alloca %struct.point904, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo905(ptr dead_on_unwind noalias writable sret(%struct.point905) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo906(ptr dead_on_unwind noalias writable sret(%struct.point906) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo907(ptr dead_on_unwind noalias writable sret(%struct.point907) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo908(ptr dead_on_unwind noalias writable sret(%struct.point908) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo909(ptr dead_on_unwind noalias writable sret(%struct.point909) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo910(ptr dead_on_unwind noalias writable sret(%struct.point910) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo911(ptr dead_on_unwind noalias writable sret(%struct.point911) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo912(ptr dead_on_unwind noalias writable sret(%struct.point912) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo913(ptr dead_on_unwind noalias writable sret(%struct.point913) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo914(ptr dead_on_unwind noalias writable sret(%struct.point914) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo915(ptr dead_on_unwind noalias writable sret(%struct.point915) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo916(ptr dead_on_unwind noalias writable sret(%struct.point916) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo917(ptr dead_on_unwind noalias writable sret(%struct.point917) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo918(ptr dead_on_unwind noalias writable sret(%struct.point918) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo919(ptr dead_on_unwind noalias writable sret(%struct.point919) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo920(ptr dead_on_unwind noalias writable sret(%struct.point920) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo921(ptr dead_on_unwind noalias writable sret(%struct.point921) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo922(ptr dead_on_unwind noalias writable sret(%struct.point922) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo923(ptr dead_on_unwind noalias writable sret(%struct.point923) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo924(ptr dead_on_unwind noalias writable sret(%struct.point924) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo925(ptr dead_on_unwind noalias writable sret(%struct.point925) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo926(ptr dead_on_unwind noalias writable sret(%struct.point926) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo927(ptr dead_on_unwind noalias writable sret(%struct.point927) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo928(ptr dead_on_unwind noalias writable sret(%struct.point928) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo929(ptr dead_on_unwind noalias writable sret(%struct.point929) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo930(ptr dead_on_unwind noalias writable sret(%struct.point930) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo931(ptr dead_on_unwind noalias writable sret(%struct.point931) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo932(ptr dead_on_unwind noalias writable sret(%struct.point932) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo933(ptr dead_on_unwind noalias writable sret(%struct.point933) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo934(ptr dead_on_unwind noalias writable sret(%struct.point934) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo935(ptr dead_on_unwind noalias writable sret(%struct.point935) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo936(ptr dead_on_unwind noalias writable sret(%struct.point936) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo937(ptr dead_on_unwind noalias writable sret(%struct.point937) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo938(ptr dead_on_unwind noalias writable sret(%struct.point938) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo939(ptr dead_on_unwind noalias writable sret(%struct.point939) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo940(ptr dead_on_unwind noalias writable sret(%struct.point940) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo941(ptr dead_on_unwind noalias writable sret(%struct.point941) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo942(ptr dead_on_unwind noalias writable sret(%struct.point942) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo943(ptr dead_on_unwind noalias writable sret(%struct.point943) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo944(ptr dead_on_unwind noalias writable sret(%struct.point944) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo945(ptr dead_on_unwind noalias writable sret(%struct.point945) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo946(ptr dead_on_unwind noalias writable sret(%struct.point946) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo947(ptr dead_on_unwind noalias writable sret(%struct.point947) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo948(ptr dead_on_unwind noalias writable sret(%struct.point948) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo949(ptr dead_on_unwind noalias writable sret(%struct.point949) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo950(ptr dead_on_unwind noalias writable sret(%struct.point950) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo951(ptr dead_on_unwind noalias writable sret(%struct.point951) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo952(ptr dead_on_unwind noalias writable sret(%struct.point952) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo953(ptr dead_on_unwind noalias writable sret(%struct.point953) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo954(ptr dead_on_unwind noalias writable sret(%struct.point954) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo955(ptr dead_on_unwind noalias writable sret(%struct.point955) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo956(ptr dead_on_unwind noalias writable sret(%struct.point956) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo957(ptr dead_on_unwind noalias writable sret(%struct.point957) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo958(ptr dead_on_unwind noalias writable sret(%struct.point958) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo959(ptr dead_on_unwind noalias writable sret(%struct.point959) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo960(ptr dead_on_unwind noalias writable sret(%struct.point960) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo961(ptr dead_on_unwind noalias writable sret(%struct.point961) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo962(ptr dead_on_unwind noalias writable sret(%struct.point962) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo963(ptr dead_on_unwind noalias writable sret(%struct.point963) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo964(ptr dead_on_unwind noalias writable sret(%struct.point964) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo965(ptr dead_on_unwind noalias writable sret(%struct.point965) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo966(ptr dead_on_unwind noalias writable sret(%struct.point966) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo967(ptr dead_on_unwind noalias writable sret(%struct.point967) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo968(ptr dead_on_unwind noalias writable sret(%struct.point968) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo969(ptr dead_on_unwind noalias writable sret(%struct.point969) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo970(ptr dead_on_unwind noalias writable sret(%struct.point970) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo971(ptr dead_on_unwind noalias writable sret(%struct.point971) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo972(ptr dead_on_unwind noalias writable sret(%struct.point972) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo973(ptr dead_on_unwind noalias writable sret(%struct.point973) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo974(ptr dead_on_unwind noalias writable sret(%struct.point974) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo975(ptr dead_on_unwind noalias writable sret(%struct.point975) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo976(ptr dead_on_unwind noalias writable sret(%struct.point976) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo977(ptr dead_on_unwind noalias writable sret(%struct.point977) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo978(ptr dead_on_unwind noalias writable sret(%struct.point978) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo979(ptr dead_on_unwind noalias writable sret(%struct.point979) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo980(ptr dead_on_unwind noalias writable sret(%struct.point980) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo981(ptr dead_on_unwind noalias writable sret(%struct.point981) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo982(ptr dead_on_unwind noalias writable sret(%struct.point982) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo983(ptr dead_on_unwind noalias writable sret(%struct.point983) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo984(ptr dead_on_unwind noalias writable sret(%struct.point984) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo985(ptr dead_on_unwind noalias writable sret(%struct.point985) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo986(ptr dead_on_unwind noalias writable sret(%struct.point986) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo987(ptr dead_on_unwind noalias writable sret(%struct.point987) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo988(ptr dead_on_unwind noalias writable sret(%struct.point988) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo989(ptr dead_on_unwind noalias writable sret(%struct.point989) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo990(ptr dead_on_unwind noalias writable sret(%struct.point990) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo991(ptr dead_on_unwind noalias writable sret(%struct.point991) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo992(ptr dead_on_unwind noalias writable sret(%struct.point992) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo993(ptr dead_on_unwind noalias writable sret(%struct.point993) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo994(ptr dead_on_unwind noalias writable sret(%struct.point994) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo995(ptr dead_on_unwind noalias writable sret(%struct.point995) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo996(ptr dead_on_unwind noalias writable sret(%struct.point996) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo997(ptr dead_on_unwind noalias writable sret(%struct.point997) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo998(ptr dead_on_unwind noalias writable sret(%struct.point998) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo999(ptr dead_on_unwind noalias writable sret(%struct.point999) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1000(ptr dead_on_unwind noalias writable sret(%struct.point1000) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1001(ptr dead_on_unwind noalias writable sret(%struct.point1001) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1002(ptr dead_on_unwind noalias writable sret(%struct.point1002) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1003(ptr dead_on_unwind noalias writable sret(%struct.point1003) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1004(ptr dead_on_unwind noalias writable sret(%struct.point1004) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1005(ptr dead_on_unwind noalias writable sret(%struct.point1005) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1006(ptr dead_on_unwind noalias writable sret(%struct.point1006) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1007(ptr dead_on_unwind noalias writable sret(%struct.point1007) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1008(ptr dead_on_unwind noalias writable sret(%struct.point1008) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1009(ptr dead_on_unwind noalias writable sret(%struct.point1009) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1010(ptr dead_on_unwind noalias writable sret(%struct.point1010) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1011(ptr dead_on_unwind noalias writable sret(%struct.point1011) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1012(ptr dead_on_unwind noalias writable sret(%struct.point1012) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1013(ptr dead_on_unwind noalias writable sret(%struct.point1013) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1014(ptr dead_on_unwind noalias writable sret(%struct.point1014) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1015(ptr dead_on_unwind noalias writable sret(%struct.point1015) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1016(ptr dead_on_unwind noalias writable sret(%struct.point1016) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1017(ptr dead_on_unwind noalias writable sret(%struct.point1017) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1018(ptr dead_on_unwind noalias writable sret(%struct.point1018) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1019(ptr dead_on_unwind noalias writable sret(%struct.point1019) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1020(ptr dead_on_unwind noalias writable sret(%struct.point1020) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1021(ptr dead_on_unwind noalias writable sret(%struct.point1021) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1022(ptr dead_on_unwind noalias writable sret(%struct.point1022) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1023(ptr dead_on_unwind noalias writable sret(%struct.point1023) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1024(ptr dead_on_unwind noalias writable sret(%struct.point1024) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1025(ptr dead_on_unwind noalias writable sret(%struct.point1025) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1026(ptr dead_on_unwind noalias writable sret(%struct.point1026) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1027(ptr dead_on_unwind noalias writable sret(%struct.point1027) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1028(ptr dead_on_unwind noalias writable sret(%struct.point1028) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1029(ptr dead_on_unwind noalias writable sret(%struct.point1029) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1030(ptr dead_on_unwind noalias writable sret(%struct.point1030) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1031(ptr dead_on_unwind noalias writable sret(%struct.point1031) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1032(ptr dead_on_unwind noalias writable sret(%struct.point1032) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1033(ptr dead_on_unwind noalias writable sret(%struct.point1033) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1034(ptr dead_on_unwind noalias writable sret(%struct.point1034) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1035(ptr dead_on_unwind noalias writable sret(%struct.point1035) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1036(ptr dead_on_unwind noalias writable sret(%struct.point1036) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1037(ptr dead_on_unwind noalias writable sret(%struct.point1037) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1038(ptr dead_on_unwind noalias writable sret(%struct.point1038) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1039(ptr dead_on_unwind noalias writable sret(%struct.point1039) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1040(ptr dead_on_unwind noalias writable sret(%struct.point1040) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1041(ptr dead_on_unwind noalias writable sret(%struct.point1041) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1042(ptr dead_on_unwind noalias writable sret(%struct.point1042) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1043(ptr dead_on_unwind noalias writable sret(%struct.point1043) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1044(ptr dead_on_unwind noalias writable sret(%struct.point1044) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1045(ptr dead_on_unwind noalias writable sret(%struct.point1045) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1046(ptr dead_on_unwind noalias writable sret(%struct.point1046) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1047(ptr dead_on_unwind noalias writable sret(%struct.point1047) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1048(ptr dead_on_unwind noalias writable sret(%struct.point1048) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1049(ptr dead_on_unwind noalias writable sret(%struct.point1049) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo1050(ptr dead_on_unwind noalias writable sret(%struct.point1050) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/_testdata/arch/esp32c3/struct_uintptr.ll b/internal/cabi/_testdata/arch/esp32c3/struct_uintptr.ll new file mode 100644 index 00000000..d630425a --- /dev/null +++ b/internal/cabi/_testdata/arch/esp32c3/struct_uintptr.ll @@ -0,0 +1,246 @@ +; ModuleID = '../../wrap/struct_uintptr.c' +source_filename = "../../wrap/struct_uintptr.c" +target datalayout = "e-m:e-p:32:32-i64:64-n32-S128" +target triple = "riscv32-esp-unknown-elf" + +%struct.point1 = type { ptr } +%struct.point2 = type { ptr, ptr } +%struct.point3 = type { ptr, ptr, ptr } +%struct.point4 = type { ptr, ptr, ptr, ptr } +%struct.point5 = type { ptr, ptr, ptr, ptr, ptr } +%struct.point6 = type { ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point7 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point8 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point9 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point10 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point11 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point12 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point13 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point14 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point15 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point16 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point17 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point18 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point19 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } +%struct.point20 = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr } + +; Function Attrs: noinline nounwind optnone +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, ptr %3, i32 0, i32 0 + %5 = inttoptr i32 %0 to ptr + store ptr %5, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 4, i1 false) + %6 = getelementptr inbounds %struct.point1, ptr %2, i32 0, i32 0 + %7 = load ptr, ptr %6, align 4 + %8 = ptrtoint ptr %7 to i32 + ret i32 %8 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) +declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #1 + +; Function Attrs: noinline nounwind optnone +define dso_local [2 x i32] @demo2([2 x i32] %0) #0 { + %2 = alloca %struct.point2, align 4 + %3 = alloca %struct.point2, align 4 + store [2 x i32] %0, ptr %3, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %2, ptr align 4 %3, i32 8, i1 false) + %4 = load [2 x i32], ptr %2, align 4 + ret [2 x i32] %4 +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo3(ptr dead_on_unwind noalias writable sret(%struct.point3) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 12, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo4(ptr dead_on_unwind noalias writable sret(%struct.point4) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 16, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo5(ptr dead_on_unwind noalias writable sret(%struct.point5) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 20, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo6(ptr dead_on_unwind noalias writable sret(%struct.point6) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 24, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo7(ptr dead_on_unwind noalias writable sret(%struct.point7) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 28, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo8(ptr dead_on_unwind noalias writable sret(%struct.point8) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 32, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo9(ptr dead_on_unwind noalias writable sret(%struct.point9) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 36, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo10(ptr dead_on_unwind noalias writable sret(%struct.point10) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 40, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo11(ptr dead_on_unwind noalias writable sret(%struct.point11) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 44, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo12(ptr dead_on_unwind noalias writable sret(%struct.point12) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 48, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo13(ptr dead_on_unwind noalias writable sret(%struct.point13) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 52, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo14(ptr dead_on_unwind noalias writable sret(%struct.point14) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 56, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo15(ptr dead_on_unwind noalias writable sret(%struct.point15) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 60, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo16(ptr dead_on_unwind noalias writable sret(%struct.point16) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 64, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo17(ptr dead_on_unwind noalias writable sret(%struct.point17) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 68, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo18(ptr dead_on_unwind noalias writable sret(%struct.point18) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 72, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo19(ptr dead_on_unwind noalias writable sret(%struct.point19) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 76, i1 false) + ret void +} + +; Function Attrs: noinline nounwind optnone +define dso_local void @demo20(ptr dead_on_unwind noalias writable sret(%struct.point20) align 4 %0, ptr noundef %1) #0 { + %3 = alloca ptr, align 4 + %4 = alloca ptr, align 4 + store ptr %0, ptr %3, align 4 + store ptr %1, ptr %4, align 4 + call void @llvm.memcpy.p0.p0.i32(ptr align 4 %0, ptr align 4 %1, i32 80, i1 false) + ret void +} + +attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv32" "target-features"="+32bit,+a,+c,+m,+relax,+zmmul,-b,-d,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-f,-h,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xesppie,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zicsr,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zve32f,-zve32x,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl32b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" } +attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } + +!llvm.module.flags = !{!0, !1, !2, !4, !5} +!llvm.ident = !{!6} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 1, !"target-abi", !"ilp32"} +!2 = !{i32 6, !"riscv-isa", !3} +!3 = !{!"rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0"} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{i32 8, !"SmallDataLimit", i32 8} +!6 = !{!"clang version 19.1.2 (https://github.com/espressif/llvm-project 510a078c1ad4aee4460818bcb38ff0ba3fbf6a83)"} diff --git a/internal/cabi/arch.go b/internal/cabi/arch.go index 791818b8..26cf7f89 100644 --- a/internal/cabi/arch.go +++ b/internal/cabi/arch.go @@ -327,7 +327,7 @@ type TypeInfoRiscv64 struct { } func (p *TypeInfoRiscv64) SupportByVal() bool { - return true + return false } func (p *TypeInfoRiscv64) SkipEmptyParams() bool { @@ -380,6 +380,76 @@ func (p *TypeInfoRiscv64) GetTypeInfo(ctx llvm.Context, ftyp llvm.Type, typ llvm return info } +const ( + MABI_LP64 = "lp64" + MABI_LP64D = "lp64d" +) + +const ( + MABI_ILP32 = "ilp32" + MABI_ILP32F = "ilp32f" + MABI_ILP32D = "ilp32d" +) + +type TypeInfoRiscv32 struct { + *Transformer + mabi string +} + +func (p *TypeInfoRiscv32) SupportByVal() bool { + return false +} + +func (p *TypeInfoRiscv32) SkipEmptyParams() bool { + return true +} + +func (p *TypeInfoRiscv32) 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 *TypeInfoRiscv32) 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] == ctx.Int64Type() { + return info + } + if types[0] == ctx.DoubleType() { + info.Kind = AttrWidthType + info.Type1 = ctx.Int64Type() + return info + } + } + if info.Size > 8 { + info.Kind = AttrPointer + info.Type1 = llvm.PointerType(typ, 0) + } else if info.Size <= 4 { + info.Kind = AttrWidthType + info.Type1 = ctx.Int32Type() + } else { + info.Kind = AttrWidthType + info.Type1 = llvm.ArrayType(ctx.Int32Type(), 2) + } + } + return info +} + type TypeInfo386 struct { *Transformer } diff --git a/internal/cabi/cabi.go b/internal/cabi/cabi.go index 0396dbd1..c0c1bde4 100644 --- a/internal/cabi/cabi.go +++ b/internal/cabi/cabi.go @@ -15,7 +15,7 @@ const ( ModeAllFunc ) -func NewTransformer(prog ssa.Program, targetName string, mode Mode, optimize bool) *Transformer { +func NewTransformer(prog ssa.Program, targetName string, targetAbi string, mode Mode, optimize bool) *Transformer { target := prog.Target() tr := &Transformer{ prog: prog, @@ -29,6 +29,9 @@ func NewTransformer(prog ssa.Program, targetName string, mode Mode, optimize boo case "esp32": tr.sys = &TypeInfoEsp32{tr} return tr + case "esp32c3": + tr.sys = &TypeInfoRiscv32{tr, targetAbi} + return tr } switch target.GOARCH { case "amd64": diff --git a/internal/cabi/cabi_test.go b/internal/cabi/cabi_test.go index 2209c7ba..092bcd47 100644 --- a/internal/cabi/cabi_test.go +++ b/internal/cabi/cabi_test.go @@ -29,6 +29,8 @@ func init() { archDir = append(archDir, "wasm32") archs = append(archs, "esp32") archDir = append(archDir, "esp32") + archs = append(archs, "esp32c3") + archDir = append(archDir, "esp32c3") } } @@ -42,6 +44,8 @@ func buildConf(mode cabi.Mode, arch string) *build.Config { conf.Goos = "wasip1" case "esp32": conf.Target = "esp32" + case "esp32c3": + conf.Target = "esp32c3" } return conf } @@ -141,7 +145,7 @@ func testFunc(t *testing.T, ctx context, td llvm.TargetData, fn llvm.Value, cfn t.Fatalf("%v %v: bad param attr type %v != %v", ctx, fn.Name(), ft, cft) } } - if fn.GetStringAttributeAtIndex(1, "byval") != cfn.GetStringAttributeAtIndex(1, "byval") { + if fn.GetStringAttributeAtIndex(i+1, "byval") != cfn.GetStringAttributeAtIndex(i+1, "byval") { t.Fatalf("%v %v: bad param attr type %v != %v", ctx, fn.Name(), ft, cft) } } diff --git a/internal/crosscompile/crosscompile.go b/internal/crosscompile/crosscompile.go index 16027822..e0b03365 100644 --- a/internal/crosscompile/crosscompile.go +++ b/internal/crosscompile/crosscompile.go @@ -34,6 +34,7 @@ type Export struct { ClangRoot string // Root directory of custom clang installation ClangBinPath string // Path to clang binary directory + TargetABI string // RISC-V Target ABI (e.g., "lp64", "lp64d") BinaryFormat string // Binary format (e.g., "elf", "esp", "uf2") FormatDetail string // For uf2, it's uf2FamilyID Emulator string // Emulator command template (e.g., "qemu-system-arm -M {} -kernel {}") @@ -453,6 +454,7 @@ func UseTarget(targetName string) (export Export, err error) { export.GOOS = config.GOOS export.GOARCH = config.GOARCH export.ExtraFiles = config.ExtraFiles + export.TargetABI = config.TargetABI export.BinaryFormat = config.BinaryFormat export.FormatDetail = config.FormatDetail() export.Emulator = config.Emulator